Live data from Hacker News

Future of Programming Languages

c2.com

11–20 of 73 posts

Re: Future of Programming Languages

#11
post #8
post #6

Earlier quoted context omitted.

They are called Domain Specific Languages (DSLs). And it can be done reasonably well today. Lisps are very good for producing DSLs; when you have macros you have very powerful control over the syntax and can therefore produce your own language within the language. The Common Lisp LOOP macro is a great example of power of macros; though in that case it is debatable whether it was used for good or bad.

Sure I know about DSLs in Lisps and such, but I don't think LISP DSLs are quite on the level of SQL. If everyone creates their own DSLs I don't think it has the same impact.

> but I don't think LISP DSLs are quite on the level of SQL

I'm curious what you mean by this. Is your definition of a DSL based on the language's syntax, or on the language's paradigm? Clojure's core.logic [1] provides logic programming, as apposed to functional programming, but maintains the syntax of a LISP.

[1] https://github.com/clojure/core.logic/wiki/Examples

Re: Future of Programming Languages

#12
post #7
post #4

My person vision is lots of tiny languages that work together in such a way that you don't have to get out of their sweet spot. Of course, I'm not sure if its possible to do this nicely.

> My person vision is lots of tiny languages that work together I personally can't work deeply in more than about 4 languages at once. This might be my memory, my experience level, or it could be a human limit, like the short-term memory 7±2 limit.

Well I was thinking of little things like Protocol Buffers, which can interoperate with many parent languages, but are so close to data they don't require deep thinking.

Edit: RE "Not same level as SQL", I meant in standardization. People can learn about SQL in isolation, too.

Re: Future of Programming Languages

#13
post #7
post #4

My person vision is lots of tiny languages that work together in such a way that you don't have to get out of their sweet spot. Of course, I'm not sure if its possible to do this nicely.

> My person vision is lots of tiny languages that work together I personally can't work deeply in more than about 4 languages at once. This might be my memory, my experience level, or it could be a human limit, like the short-term memory 7±2 limit.

There is an interview with Don Knuth somewhere where he talks about having to work in numerous low level languages simultaneously to write compilers for different machines in the 1960s. He added that learning MIXAL/MMIX is no big deal compared to the days when every computer had a different architecture you had to learn, sometimes with little documentation.

Re: Future of Programming Languages

#15
The most interesting language design I have seen is Noether. It is a language built on multiple layers. Inner layers guarantee more invariants (say, immutability) but forbids constructs you may want to use. Outer layers are more expressive but guarantee less invariants. Importantly, inner layers are not different languages but sublanguages of outer layers, and inner layers keep guaranteeing invariants even when used in outer layers.

http://www.infoq.com/presentations/noether

Re: Future of Programming Languages

#16
PanuKalliokoski's short-term predictions were pretty prescient if they are more than a couple of years old. I wonder when he wrote them. Is there a way to view edit history on c2?

Re: Future of Programming Languages

#18
post #8
post #6

Earlier quoted context omitted.

They are called Domain Specific Languages (DSLs). And it can be done reasonably well today. Lisps are very good for producing DSLs; when you have macros you have very powerful control over the syntax and can therefore produce your own language within the language. The Common Lisp LOOP macro is a great example of power of macros; though in that case it is debatable whether it was used for good or bad.

Sure I know about DSLs in Lisps and such, but I don't think LISP DSLs are quite on the level of SQL. If everyone creates their own DSLs I don't think it has the same impact.

Check out Pilog which is a query language DSL for working with picolisp's built-in databases.... I'd be interested in hearing from people with more knowledge of SQL than I do to see how they compare.

Re: Future of Programming Languages

#19
I think the "language of the future" will be the one that will allow people get results fast with little or no training. In other words, something that requires low skill. People hate learning and all they want is a magic button that just makes things happen (for the record, writing this doesn't make me happy at all).

Also, I predict something similar to the industrial revolution in software engineering, when high-skill difficult manual labor is replaced by factories operated by cheap low-skill workers.

Re: Future of Programming Languages

#20
I think whatever the language of the future will be, it's likely that we're going to have to give up editing a bunch of text files. Much of modern programming these days is really about workflow of large teams. It'd be nice to have richer editing areas that allow for things like embedded diagrams and videos as comments, annotations, hypertext links out to documentation and from documentation into code, review comments (similar to MS-Word), font size; colors; background colors etc. time-tracking for payroll, etc.

IDEs try to provide some of this layer on top of the piles of text files we use today, often supplemented with out-of-band config files and folder structure littering stuff all over the place. But there continues to be a proliferation of hacked on comment systems to handle things like method descriptions, code changes, reviews. People make changes in some code, then leave a comment in the code with the change they made, their name and email address so 2 years later somebody can try and track them down to remember the 2-line change they made 2 years prior. It's kind of absurd.

Imagine if I could just draw a box around a section of code, make the box dashed and fill the background with red and have a call-out annotation around it that says something like "highly performance sensitive, do not touch, see bane for problems" and "bane" was a link to my bug tracker page where you could immediately file an issue with that code?

And you knew the code had a problem because right above it, instead of some vague interpretive ASCII art describing the algorithm as a comment, there was a familiar vector graphic diagram and a set of equations all of us domain expert programmers know by heart. Only you noticed an error in the way I translated it from the textbook to code. You also tagged the couple lines I screwed up and wrote up a review comment in the sidebar (like in MS-Word) letting me know what you thought was wrong, that way when I go to my bug tracker, click the link that takes me directly to the code you wanted me to see, I see your review comment right next to the code in question, only it's not mixed up in the rest of the code comments explaining how the code works since it's semantically a separate thing.

I check out the problem and see that you're correct, I leave a response comment (which automatically notifies you via e-mail with a link to the bug tracker and to the code in question. When I go back out to the bug tracker the amount of time I was reviewing the issue is automatically logged, a diff is stored for review so everybody knows what I changed and the review comment and reply are automatically filled out in the tracker. My boss wants to check out the entire exchange, clicks my reply, is taken directly to the block of code in question and sees that I spent a reasonable amount of time doing the change (which he can see since the changes were tracked in the diff). I close the case and the review comments disappear from the code, leaving behind only good clean code and explanatory comments.

Now a year later, somebody turns on "see old bugs" and they see there was a problem there, the discussion, what the bug tracker #s were (with links they can follow), they can even play back time and see the 3 other edits that happened since then by simply moving a slider left to right.

Post reply on HN