

An open letter to language designers: Kill your sacred cows. - Arcticus
http://joshondesign.com/2012/03/09/open-letter-language-designers

======
jinushaun
I disagree with pretty much all his points, especially the requirement for an
IDE.

~~~
npsimons
_I disagree with pretty much all his points, especially the requirement for an
IDE._

 _Whew_. Glad I'm not the only one. I was starting to think maybe I'd turned
into a set-in-his-ways fuddy-duddy. It's all well and good to propose new,
even radical ideas, but like everything else, they have to pass (at least) one
simple test: will it work? FTFA:

 _Why, for the love of all things pure and functional, are we still storing
our source code as ASCII text files on disk?_

Why? _Why?_ Because it works, and it works very well, thank you very much.
Maybe some of us are looking beyond next week because we want to be able to
open our code in something 10, 20, even 30 years from now. I'll bet this guy
hasn't even heard of EBCDIC. ASCII is a blessing. I'll give him that he's
talking up XML and JSON, which are (thankfully) still just plain text at their
cores, but the whole "IDEs can store metadata in the repo!" thing just seems
stupid. If a human can't see and edit it, sooner or later it will become a
roadblock. Note that I'm not saying a human should _have_ to see and edit it,
just that they can if need be. See the Windows Registry for the ultimate
example of metadata in a non-ascii format.

I was tempted to stop reading at point #1, even more so at #2, but some other
points are generally good. #6, #7, and #8 are particularly good ideas for new
language designers. Extensibility (#6) is what makes languages powerful.
Anyone who _needs_ performance (#7 and #8) is already using an established
language (such as assembler or C) that doesn't have a GC, so there's no point
in writing a language nobody will use.

------
zdouglas
This is the binary-vs-plaintext argument all over again. Java's been through
this once before, and they settled on .jar files containing bytecode (the
author's ASTs, etc.), _and_ human-readable source.

To jinshaun's point: I wouldn't mind requiring an IDE, but it should
absolutely _not_ be required to run in a window system. The overwhelming
majority of administration is conducted over CLI, and if you've never had to
hotfix _something_ on an X-less production server, you're either a deployment
rock star or lying to yourself and others.

I lastly want to reiterate that programming languages are "languages" by
definition, and their syntax and terminology are what makes them universal.
Using "dingbats" to represent functionality inherently breaks down the out-of-
band communication of ideas. "Add a left-pointer-finger to pass the value to
the caller of the function." _WAT_?

~~~
joshmarinacci
I'm not saying you aren't typing symbols into an editor. Programming should
still be done with a language. I'm saying: why should what you type be the
same thing that is stored on disk. We are a decade into the 21st century and
we still edit code the way we did in the 70s. Am I the only one who sees
something wrong with that?

Let me ask you this. How will software for the Starship Enterprise be written?
If we are still doing it in VIM then there is something seriously wrong with
the future. Surely _something_ better will come along. Let's explore what that
something is.

~~~
justncase80
It sounds like you're referring to a "structured editor", something like this:

<http://www.guilabs.net/>

------
gavanwoolery
There are two camps of people: pro-IDE and anti-IDE.

The real answer is, it is going to take both, and they have to be very well
designed. Most people hate IDEs because they are so cluttered and inefficient,
and many people hate advanced text editors because they can be difficult to
learn or non-intuitive.

That said, let me give a little tiny side rant about text editors...

We still edit code on the character level. This is retarded (in my view)
because really code isn't about characters, it is about tokens. I don't care
if the data gets saved as characters, but I do have a problem strictly editing
one character at a time.

Problem: layout. Crazy tabbing and spacing should not be necessary to line
things up. Rather code should be in something like an excel sheet, with one
token per box. LHS and RHS should be aligned vertically, automatically. This
would mean you could do some interesting things, like easily multi-select a
vertical row of tokens. Perhaps for readability purposes, you could easily
toggle between normal text layout and an excel style layout...Maybe I'm nuts
but sometimes you have to try crazy things to make progress.

------
radiowave
I agree with pretty much all his points, except the one about too much syntax.

