www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Complete the checklist! :o)

reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
http://colinm.org/language_checklist.html

Andrei
Aug 05 2014
next sibling parent reply "H. S. Teoh via Digitalmars-d" <digitalmars-d puremagic.com> writes:
On Tue, Aug 05, 2014 at 10:14:21AM -0700, Andrei Alexandrescu via Digitalmars-d
wrote:
 http://colinm.org/language_checklist.html
Alright, I'll have a go at it: ------------------------------------------------------------------------------- Programming Language Checklist by [1]Colin McMillen, [2]Jason Reed, and [3]Elly Jones. You appear to be advocating a new: [ ] functional [X] imperative [X] object-oriented [X] procedural [X] stack-based [X] "multi-paradigm" [X] lazy [X] eager [X] statically-typed [ ] dynamically-typed [ ] pure [ ] impure [ ] non-hygienic [ ] visual [ ] beginner-friendly [ ] non-programmer-friendly [ ] completely incomprehensible programming language. Your language will not work. Here is why it will not work. You appear to believe that: [ ] Syntax is what makes programming difficult [X] Garbage collection is free [ ] Computers have infinite memory [X] Nobody really needs: [ ] concurrency [X] a REPL [X] debugger support [X] IDE support [ ] I/O [ ] to interact with code not written in your language [ ] The entire world speaks 7-bit ASCII [X] Scaling up to large software projects will be easy [X] Convincing programmers to adopt a new language will be easy [ ] Convincing programmers to adopt a language-specific IDE will be easy [ ] Programmers love writing lots of boilerplate [X] Specifying behaviors as "undefined" means that programmers won't rely on them [ ] "Spooky action at a distance" makes programming more fun Unfortunately, your language (has/lacks): [X] comprehensible syntax [ ] semicolons [ ] significant whitespace [X] macros [ ] implicit type conversion [X] explicit casting [X] type inference [X] goto [X] exceptions [X] closures [ ] tail recursion [ ] coroutines [X] reflection [ ] subtyping [ ] multiple inheritance [X] operator overloading [X] algebraic datatypes [ ] recursive types [ ] polymorphic types [ ] covariant array typing [X] monads [X] dependent types [ ] infix operators [X] nested comments [X] multi-line strings [X] regexes [ ] call-by-value [ ] call-by-name [ ] call-by-reference [ ] call-cc The following philosophical objections apply: [ ] Programmers should not need to understand category theory to write "Hello, World!" [ ] Programmers should not develop RSI from writing "Hello, World!" [ ] The most significant program written in your language is its own compiler [X] The most significant program written in your language isn't even its own compiler [X] No language spec [X] "The implementation is the spec" [ ] The implementation is closed-source [ ] covered by patents [ ] not owned by you [ ] Your type system is unsound [ ] Your language cannot be unambiguously parsed [ ] a proof of same is attached [ ] invoking this proof crashes the compiler [X] The name of your language makes it impossible to find on Google [ ] Interpreted languages will never be as fast as C [ ] Compiled languages will never be "extensible" [ ] Writing a compiler that understands English is AI-complete [ ] Your language relies on an optimization which has never been shown possible [ ] There are less than 100 programmers on Earth smart enough to use your language [ ] ____________________________ takes exponential time [X] _The color of the bikeshed__ is known to be undecidable Your implementation has the following flaws: [ ] CPUs do not work that way [ ] RAM does not work that way [ ] VMs do not work that way [ ] Compilers do not work that way [ ] Compilers cannot work that way [ ] Shift-reduce conflicts in parsing seem to be resolved using rand() [ ] You require the compiler to be present at runtime [X] You require the language runtime to be present at compile-time [X] Your compiler errors are completely inscrutable [ ] Dangerous behavior is only a warning [X] The compiler crashes if you look at it funny [ ] The VM crashes if you look at it funny [ ] You don't seem to understand basic optimization techniques [ ] You don't seem to understand basic systems programming [ ] You don't seem to understand pointers [ ] You don't seem to understand functions Additionally, your marketing has the following problems: [X] Unsupported claims of increased productivity [X] Unsupported claims of greater "ease of use" [ ] Obviously rigged benchmarks [ ] Graphics, simulation, or crypto benchmarks where your code just calls handwritten assembly through your FFI [ ] String-processing benchmarks where you just call PCRE [ ] Matrix-math benchmarks where you just call BLAS [X] Noone really believes that your language is faster than: [X] assembly [X] C [X] FORTRAN [X] Java [ ] Ruby [ ] Prolog [ ] Rejection of orthodox programming-language theory without justification [ ] Rejection of orthodox systems programming without justification [ ] Rejection of orthodox algorithmic theory without justification [ ] Rejection of basic computer science without justification Taking the wider ecosystem into account, I would like to note that: [X] Your complex sample code would be one line in: _APL :-)_______________ [X] We already have an unsafe imperative language [X] We already have a safe imperative OO language [X] We already have a safe statically-typed eager functional language [ ] You have reinvented Lisp but worse [ ] You have reinvented Javascript but worse [ ] You have reinvented Java but worse [ ] You have reinvented C++ but worse [ ] You have reinvented PHP but worse [ ] You have reinvented PHP better, but that's still no justification [ ] You have reinvented Brainfuck but non-ironically In conclusion, this is what I think of you: [X] You have some interesting ideas, but this won't fly. [ ] This is a bad language, and you should feel bad for inventing it. [X] Programming in this language is an adequate punishment for inventing it. References Visible links 1. http://colinm.org/ 2. http://jcreed.org/ 3. http://www.leptoquark.net/~elly/ ------------------------------------------------------------------------------- :-P T -- Which is worse: ignorance or apathy? Who knows? Who cares? -- Erich Schubert
Aug 05 2014
parent "Kagamin" <spam here.lot> writes:
On Tuesday, 5 August 2014 at 21:36:30 UTC, H. S. Teoh via 
Digitalmars-d wrote:
 [X] stack-based
Probably not what you thought.
Aug 06 2014
prev sibling parent reply Iain Buclaw via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 5 August 2014 22:34, H. S. Teoh via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 On Tue, Aug 05, 2014 at 10:14:21AM -0700, Andrei Alexandrescu via
Digitalmars-d wrote:
 http://colinm.org/language_checklist.html
Alright, I'll have a go at it: ------------------------------------------------------------------------------- Programming Language Checklist by [1]Colin McMillen, [2]Jason Reed, and [3]Elly Jones. You appear to be advocating a new: [ ] functional [X] imperative [X] object-oriented [X] procedural [X] stack-based [X] "multi-paradigm" [X] lazy [X] eager [X] statically-typed [ ] dynamically-typed [ ] pure [ ] impure [ ] non-hygienic [ ] visual [ ] beginner-friendly [ ] non-programmer-friendly [ ] completely incomprehensible programming language. Your language will not work. Here is why it will not work. You appear to believe that: [ ] Syntax is what makes programming difficult [X] Garbage collection is free [ ] Computers have infinite memory [X] Nobody really needs: [ ] concurrency [X] a REPL [X] debugger support [X] IDE support [ ] I/O [ ] to interact with code not written in your language
I resent you ticking the debugger support box. ;-) But is is true that debugging comes as a second class citizen. By way of example, currently if you want to make a break point at an optimisation pass in GCC, you have to break at '(anonymous namespace)::pass_xxxx::execute' - this is post conversion to C++!
  Taking the wider ecosystem into account, I would like to note that:
  [X] Your complex sample code would be one line in: _APL :-)_______________
  [X] We already have an unsafe imperative language
  [X] We already have a safe imperative OO language
  [X] We already have a safe statically-typed eager functional language
  [ ] You have reinvented Lisp but worse
  [ ] You have reinvented Javascript but worse
  [ ] You have reinvented Java but worse
  [ ] You have reinvented C++ but worse
At least you didn't tick these three bottom boxes. ;) Iain.
Aug 06 2014
parent reply "eles" <eles eles.com> writes:
On Wednesday, 6 August 2014 at 07:44:39 UTC, Iain Buclaw via 
Digitalmars-d wrote:
 On 5 August 2014 22:34, H. S. Teoh via Digitalmars-d
 <digitalmars-d puremagic.com> wrote:
 On Tue, Aug 05, 2014 at 10:14:21AM -0700, Andrei Alexandrescu
  [ ] You have reinvented Javascript but worse
What could be worse than Javascript? Seriously.
Aug 06 2014
parent reply "Brian Schott" <briancschott gmail.com> writes:
On Wednesday, 6 August 2014 at 08:12:57 UTC, eles wrote:
 What could be worse than Javascript? Seriously.
Serious questions call for serious answers. http://en.wikipedia.org/wiki/Malbolge http://en.wikipedia.org/wiki/INTERCAL http://en.wikipedia.org/wiki/MUMPS
Aug 06 2014
next sibling parent reply "eles" <eles eles.com> writes:
On Wednesday, 6 August 2014 at 08:16:56 UTC, Brian Schott wrote:
 On Wednesday, 6 August 2014 at 08:12:57 UTC, eles wrote:
 http://en.wikipedia.org/wiki/Malbolge
(no, I wasn't cursing you!)
 http://en.wikipedia.org/wiki/INTERCAL
 http://en.wikipedia.org/wiki/MUMPS
OMG, this one is not intended to be a joke! Thanks for the answer. It is always useful to learn new things...
Aug 06 2014
parent reply "Brian Schott" <briancschott gmail.com> writes:
On Wednesday, 6 August 2014 at 08:44:57 UTC, eles wrote:
 OMG, this one is not intended to be a joke!
http://thedailywtf.com/Articles/A_Case_of_the_MUMPS.aspx http://thedailywtf.com/Articles/Avoiding-MUMPS--Arcadius.aspx I interviewed with this company once. (I'm not the one who wrote in to TDWTF) When we started talking about MUMPS I was very tempted to do this: http://i.imgur.com/ZfIH6Dd.gif
Aug 06 2014
next sibling parent "eles" <eles eles.com> writes:
On Wednesday, 6 August 2014 at 09:39:10 UTC, Brian Schott wrote:
 On Wednesday, 6 August 2014 at 08:44:57 UTC, eles wrote:
 OMG, this one is not intended to be a joke!
http://thedailywtf.com/Articles/A_Case_of_the_MUMPS.aspx http://thedailywtf.com/Articles/Avoiding-MUMPS--Arcadius.aspx I interviewed with this company once. (I'm not the one who wrote in to TDWTF) When we started talking about MUMPS I was very tempted to do this: http://i.imgur.com/ZfIH6Dd.gif
Impressive is the least I can say. I really look forward for "Managed extensions for MUMPS" by guessWho Inc.
Aug 06 2014
prev sibling parent "Wyatt" <wyatt.epp gmail.com> writes:
On Wednesday, 6 August 2014 at 09:39:10 UTC, Brian Schott wrote:
 On Wednesday, 6 August 2014 at 08:44:57 UTC, eles wrote:
 OMG, this one is not intended to be a joke!
http://thedailywtf.com/Articles/A_Case_of_the_MUMPS.aspx http://thedailywtf.com/Articles/Avoiding-MUMPS--Arcadius.aspx I interviewed with this company once. (I'm not the one who wrote in to TDWTF) When we started talking about MUMPS I was very tempted to do this: http://i.imgur.com/ZfIH6Dd.gif
Oh, I have a friend who works at Epic. ;) He gave me a tour of their campus last year; it's really super bonkers, considering what they do: http://jgweb.sx3.atl.publicus.com/storyimage/JG/20101231/ARTICLES/312319978/EP/1/2/EP-312319978.jpg The filled-in part of the backwards "S" on the left side is their company auditorium. It seats about 5,000 (IIRC), but they're building a new one because _it's not big enough_. I believe the new one (not pictured) was built into the hill along the bottom of the photo. -Wyatt
Aug 06 2014
prev sibling parent "Kagamin" <spam here.lot> writes:
On Wednesday, 6 August 2014 at 08:16:56 UTC, Brian Schott wrote:
 http://en.wikipedia.org/wiki/MUMPS
Ah, I remember, Caché ObjectScript, a superset of MUMPS is a scripting language for Caché database which InterSystems claims to be the fastest object-oriented database.
Aug 06 2014