Programming languages - now and then

  • (5 Pages)
  • +
  • 1
  • 2
  • 3
  • Last »

70 Replies - 9104 Views - Last Post: 25 July 2013 - 01:17 AM

#1 andrewsw  Icon User is online

  • Fire giant boob nipple gun!
  • member icon

Reputation: 2886
  • View blog
  • Posts: 9,590
  • Joined: 12-December 12

Programming languages - now and then

Post icon  Posted 16 June 2013 - 11:35 AM

*
POPULAR

I'm interested in people's current predictions on what will happen to the various languages over the next few years.

Java has had a bad press in recent years but has a major new release. Is this a new lease of life, particularly with Android taking off so rapidly?
C++ questions seem second only to Java in popularity here, but perhaps this is due more to college curricula rather than an indicator of current widespread use?
C# questions are not as frequent as I would have anticipated. Is this a sign?

In particular, which languages are likely to become more popular?

Is This A Good Question/Topic? 5
  • +

Replies To: Programming languages - now and then

#2 Dogstopper  Icon User is offline

  • The Ninjaducky
  • member icon



Reputation: 2858
  • View blog
  • Posts: 10,963
  • Joined: 15-July 08

Re: Programming languages - now and then

Posted 16 June 2013 - 11:43 AM

Honestly, I don't see a lot of change coming in the next few years. I think Android is what is keeping Java alive, the same way that iPhone is keeping Objective C alive. C will remain one of the frontier languages for devices and controls. The only real changes that I feel will happen is in the realm of web development as HTML5 and new web technologies come and go.

This post has been edited by Dogstopper: 16 June 2013 - 11:58 AM

Was This Post Helpful? 2
  • +
  • -

#3 andrewsw  Icon User is online

  • Fire giant boob nipple gun!
  • member icon

Reputation: 2886
  • View blog
  • Posts: 9,590
  • Joined: 12-December 12

Re: Programming languages - now and then

Posted 16 June 2013 - 11:52 AM

Will particular web frameworks come to prominence? There are so many of them currently, that essentially do the same thing and work in the same way.
Was This Post Helpful? 0
  • +
  • -

#4 Dogstopper  Icon User is offline

  • The Ninjaducky
  • member icon



Reputation: 2858
  • View blog
  • Posts: 10,963
  • Joined: 15-July 08

Re: Programming languages - now and then

Posted 16 June 2013 - 12:55 PM

I have no prediction on web frameworks. Each language has one or several that all do a good job:
PHP: Drupal, Joomla, ...
Ruby: Ruby on Rails
Python: CGI, Django
...

But I have noticed that my school club for web dev is really pushing the Heroku platform, and honestly I can see that gaining prominence.
Was This Post Helpful? 2
  • +
  • -

#5 baavgai  Icon User is offline

  • Dreaming Coder
  • member icon

Reputation: 5643
  • View blog
  • Posts: 12,359
  • Joined: 16-October 07

Re: Programming languages - now and then

Posted 16 June 2013 - 01:20 PM

*
POPULAR

Why are Java and C++ so popular here? Simple. They're taught in school. Also, they're not taught drag and drop style. The .NET language seem to be. Your IDE can do a lot of work, even without a lot of understanding...

C++ has always been a kitchen sink kind of language. In the latest iteration, it takes on the current trend of dynamic typing and lambda love.

Java, which always towed the hard line of it's OO vision, has also gotten more dynamic over time. Frankly, they're chasing C# now, when it started out the other way around.

Go, Google's language, I would have expected to go somewhere, but it hasn't.

The functional toys are sneaking in, more and more, to the non functional languages. I blame Python. I also don't see this changing. Programmers know they need immutable state to make parallelization safe, and other traditionally functional toys, but don't want to develop in the purely functional fish bowl. As a result, we're seeing a functional imperative fusion.

Java is neat in that tons of other languages swim about in the JVM. It's still possible a JVM based language will rise to power. Scala had a shot, but has all the focus of a shot gun and enough confusing gotchas to keep it down. Another, however, could rise.

F# could do the same thing in .NET world, but it seems more likely that C# and VB will simply absorb all the features in F# that would encourage users to use it.

Most people wouldn't mind a Javascript alternative, but all contenders continue to fail. So, potentially, Javascript itself might find more power in other places, morph into odd things like Node.js and even desktop HTML5 apps.

I'll vote Javascript, you love to hate it but you just can't kill it.
Was This Post Helpful? 6
  • +
  • -

#6 Martyr2  Icon User is offline

  • Programming Theoretician
  • member icon

Reputation: 4189
  • View blog
  • Posts: 11,863
  • Joined: 18-April 07

Re: Programming languages - now and then

Posted 16 June 2013 - 01:38 PM

I can't say that Android is what is keeping Java alive. Java is in so many places and while Android may be part of it, Baavgai has touched on another part, but the third part is that it is just so ingrained in enterprise software and it really does run a lot of things. Being that there are mini JVMs running on limited memory devices it is often a language that you can use to do all sorts of things with. It won't be going anywhere.

C/C++ will continue to be work horses. It really is the utility language features that makes it so popular and it is under the hood of so many other things. I mean half of PHP runs on C libraries.

PHP will hold its own for awhile and its strength is just held together on its easiness to learn and the mass adoption of it. I have to say that despite all the bad rap it gets, I sure do love it compared to other options like ASP.NET. I despise ASP.net and that is even when I am forced to work with it at work.

I am not surprised by GO or Dart. The world doesn't need another language as far as I am concerned. We need to just get better at using the ones we have. People are creating languages now because they just don't know how to do it in the languages that they know. That is like tearing out the plumbing from a house and replacing it because you don't know how to clean the trap under a sink.

.NET's fate is directly tied to Microsoft. C# is a fabulous language and might have a bit of a life if the mono project can continue to take it past Windows machines, but the rest of .NET is going to fall once Microsoft falls. That might be quite some time from now.

As for frameworks, they come and go. I have been doing this for a long time and I have seen these new up and comer frameworks popping up everywhere. But you know, I have seen others that you just don't hear about anymore. Frameworks have to meet a real need if they want to survive. For instance jQuery really meets a need but once browsers fall in line with a standard then we won't really need it much.

But we can all just guess and we will have to see how it shakes out in the end. :)

This post has been edited by Martyr2: 16 June 2013 - 01:48 PM

Was This Post Helpful? 1
  • +
  • -

#7 JeremyMorgan  Icon User is offline

  • New D.I.C Head

Reputation: 4
  • View blog
  • Posts: 1
  • Joined: 22-May 09

Re: Programming languages - now and then

Posted 16 June 2013 - 01:45 PM

I feel the emergence of higher level languages like Python and Ruby are the direction we're going to go. People want to more with less code, and rapid development is important.

That being said there will always be a need for low level C/C++ type languages as a foundation to these, and the improvements to these languages will mostly be centered around performance enhancement. But with increasing hardware performance these languages tend to matter less.

Javascript is the language that's going to continue to take off like a rocket because it can be run anywhere, and it's super simple to build. Anything from a website to an app, game or whatever JS can do it. Recent packages like CoffeeScript, TypeScript and others attempt to bring OOP development to JS. Languages like Dart will give you the performance advantage to your high level code.

This is where I think it's at. Code that's simple, easy to write and performs well is the holy grail we've all been looking for, and we're getting there.
Was This Post Helpful? 4
  • +
  • -

#8 gentletosh7  Icon User is offline

  • New D.I.C Head

Reputation: 6
  • View blog
  • Posts: 25
  • Joined: 23-September 11

Re: Programming languages - now and then

Posted 16 June 2013 - 01:50 PM

*
POPULAR

Too much abstractions!

Everyone is busy trying to create things to make us write less code by covering up important concepts. Stop trying to make programs easier to write. The first language I was introduced to was Java, I struggled with it for a while, then decide to look at C. It was the best decision I ever made. I understood the underlying concepts of software construction such as how memory works, pointers etc and that has made me a better programmer today. I even picked up a book on assembly.

The best programmers today are those that programmed in the earliest languages. They had to do everything manually and understood every bit of a program workflow.
Was This Post Helpful? 6
  • +
  • -

#9 cfoley  Icon User is offline

  • Cabbage
  • member icon

Reputation: 1907
  • View blog
  • Posts: 3,953
  • Joined: 11-December 07

Re: Programming languages - now and then

Posted 16 June 2013 - 05:05 PM

I think you are confusing learning about programming with building software. Learning about memory and programming in assembly is great for learning but for building, abstractions are great. If I'm making a game, I want to concentrate on the logic of multiplayer games, not writing networking libraries from scratch. Likewise, I don't want to write a 3D library from scratch or a device driver for the disk drive so I can save games. I want to build on top of existing abstractions so I can make something better within budget.

Quote

The best programmers today are those that programmed in the earliest languages.


This might be correct but without some evidence to back it up, it looks like you made it up. I'd also question if it is anything to do with the languages or if it's just because they have been doing this a long time and have more experience.
Was This Post Helpful? 2
  • +
  • -

#10 xclite  Icon User is offline

  • LIKE A BOSS
  • member icon


Reputation: 877
  • View blog
  • Posts: 3,122
  • Joined: 12-May 09

Re: Programming languages - now and then

Posted 16 June 2013 - 07:37 PM

View PostMartyr2, on 16 June 2013 - 04:38 PM, said:

I am not surprised by GO or Dart. The world doesn't need another language as far as I am concerned. We need to just get better at using the ones we have. People are creating languages now because they just don't know how to do it in the languages that they know. That is like tearing out the plumbing from a house and replacing it because you don't know how to clean the trap under a sink.

I don't know that this is a fair statement - a lot of guys making these new languages aren't people that don't know how to do something in Java. Seriously, what are the chances that somebody is able to create a language that large groups of people (whether the language challenges the likes of Java/C# or not) can use and LIKE to use, but somehow this same person couldn't use the existing languages due to some knowledge/skill limitation?

No, I'm pretty sure the motivation is that they find the current languages lacking in various decisions, semantics, and capabilities. Writing a new language in this case could be compared to removing old plumbing because you keep fixing leaks and you just want something that was designed with these leaks in mind.

(Not a claim on the actual qualities of Go/Dart)
Was This Post Helpful? 3
  • +
  • -

#11 jon.kiparsky  Icon User is offline

  • Pancakes!
  • member icon


Reputation: 7294
  • View blog
  • Posts: 12,139
  • Joined: 19-March 11

Re: Programming languages - now and then

Posted 16 June 2013 - 08:03 PM

Right now I see python and ruby as the most interesting things going. I don't know if either will ever overtake C[++]? or Java, simply because of the mass of existing code in those languages, but they're the ones that seem to be the best combination of cool features and serious language design. I've been playing with Ruby a little, I'm not convinced I like it - it seems like it's just too sticky with syntactic sugar, I'm getting indigestion - but there are some good ideas there, and there are definitely people interested in it.

And python still seems like an eminently awesome language. I might come to find the sharp edges, but so far it's remarkably easy to work with.
Was This Post Helpful? 0
  • +
  • -

#12 cfoley  Icon User is offline

  • Cabbage
  • member icon

Reputation: 1907
  • View blog
  • Posts: 3,953
  • Joined: 11-December 07

Re: Programming languages - now and then

Posted 17 June 2013 - 03:06 AM

Older languages were more restrictive in the way you could use them. For example, FORTRAN, C and BASIC were strictly imperative. LISP was mostly functional. PROLOG was logic programming. Smalltalk was Object Orientated (in ways you wouldn't believe -- booleans were not represented by a bit. True and False extended the abstract class Boolean!)

I guess this was a period of exploration. These older languages were implemented using different models of computation and their successes and failures motivated newer languages and later releases. Imperative programming was popular initially at least in part because of hardware limitations. As systems got bigger, object orientation became popular and now with hardware that better supports parallel programming, functional programming is becoming more popular.

I guess what we are really seeing is convergence. All the big players want to be object orientated and they want to be imperative but with functional features. Most of them have achieved that goal too and it's not easy to see what's coming next. Java is probably most guilty of lagging behind but even it is set to have closures in its next release. After that, the proposed features are better multi-gigabyte heap support, better native code integration, automatic parallelisation and removal of primitives. It's all useful stuff (I'm particularly looking forward to the outrage that removing primitives will cause) but it's all just tweaking and improving.

Now most languages support most of the same features, what can possibly come next? Logic programming is conspicuous in its absence. Not only have I never knowingly used a language that has logic programming, I donít even know of any other than PROLOG. Maybe its uses are just too niche or maybe some hardware change will make it more popular (like multicore processors increased interest in functional programming).

Meta programming is only sporadically supported. Iím not sure it has a strong case for inclusion in many languages. It suits Lisp and Rubyís philosophy very well. Not so much with Java. Iím also surprised that there isnít much language support for aspect orientated programming.

Interoperability between languages is a bit of a hodge podge at the moment. You have the native world where everyone makes a DLL or SO. You have the CLR world where Microsoft languages play nicely together. The JVM world has a bunch of languages that compile to bytecode including a lot of alternative compilers for languages that traditionally donít (JRuby, Jython, Rhino). Then there are things like CoffeeScript that compile to other languages. This is certainly an area that would benefit from standardisation.

If hardware changes have been a motivator programming languages so far (certainly not the only one) then what upcoming changes in hardware can we expect. We expect bigger, better and faster in a smaller volume. Maybe we will see more interpreters in use relative to compilers. Mobile seems to have embraced existing languages and I donít see any case for specialist mobile languages either. If quantum computers become a reality then I expect them to change things radically.

To summarise, all the major language already seem to have implemented all the same features. Despite there being several candidates for inclusion, there doesnít seem to be much momentum in that direction. I think for the next period of time, we will be looking at improvements to the compilers and maybe some syntactic sugar. Hopefully, there will be greater steps forward in integration too.
Was This Post Helpful? 0
  • +
  • -

#13 jon.kiparsky  Icon User is offline

  • Pancakes!
  • member icon


Reputation: 7294
  • View blog
  • Posts: 12,139
  • Joined: 19-March 11

Re: Programming languages - now and then

Posted 17 June 2013 - 04:16 AM

Just a minor quibble - I can't think of a single language in which boolean values are actually represented by a single bit. (obviously, this has to do with the resolution at which modern machines - say, post-ENIAC - address memory)

As to your major point, yes, I think a convergence is happening and will continue, but particular syntax decisions will continue to divide languages. This is not as superficial as the pointy-headed would want you to believe - for example, many people reject Java simply because they think it's too verbose, and others won't touch a lisp because the parentheses cause them pain.
I would love to see the trend you've pointed to taken to its logical conclusion, and languages treated simply as syntactic representations of the underlying code. Imagine if you could simply "open the source code" in whatever syntax you chose! This would require some major work on decompiling - generating reasonable source representations in an arbitrary language from machine-level representations would be a very difficult problem, but possibly not significantly harder than generating "source representations" in an arbitrary language of a piece of human-language text.
Just a little bit of science fiction, which seems appropriate for this thread.

As for "syntactic sugar" I hope in vain for some sudden dawning of light, and a rejection of the needless complication of languages that it embodies. "Syntactic sugar" is a prolific source of "gotchas" and requires the user to keep track of layers and layers of "yes-but" clauses in their mental model of a language. I'm not saying all shortcuts should be abolished, but any "sugar" should be carefully considered, and the advantages should be weighed against the syntactic obesity it brings in its wake... to carry the metaphor further than it deserves, "syntactic sugar" should be a treat for special occasions, not a part of every "meal".
Was This Post Helpful? 0
  • +
  • -

#14 DarenR  Icon User is offline

  • D.I.C Lover

Reputation: 386
  • View blog
  • Posts: 2,659
  • Joined: 12-January 10

Re: Programming languages - now and then

Posted 17 June 2013 - 05:13 AM

Eventually I believe that all the languages will give way to a more standardized community language where all the best parts of the current languages will be morphed into the new language.
Was This Post Helpful? 0
  • +
  • -

#15 cfoley  Icon User is offline

  • Cabbage
  • member icon

Reputation: 1907
  • View blog
  • Posts: 3,953
  • Joined: 11-December 07

Re: Programming languages - now and then

Posted 17 June 2013 - 05:37 AM

Quote

I can't think of a single language in which boolean values are actually represented by a single bit.


Yes, that was sloppy of me. My point was that most language's representation of boolean maps very closely to a low level representation.

Quote

syntax decisions will continue to divide languages. This is not as superficial as the pointy-headed would want you to believe


In the sense that people have a preference for certain syntaxes, it's not trivial. But if anyone asks me to write a program using .NET, I don't mind if they prefer me to use VB or C#. With a few minor exceptions, I can do everything in one language that I can in the other. They have the same library and and the code will be structured the same way. I might have a preference for one but one is not intrinsically better than the other.

Obviously, there are comparisons where this doesn't work so well. e.g. Smalltalk to Haskell.

Quote

I would love to see the trend you've pointed to taken to its logical conclusion, and languages treated simply as syntactic representations of the underlying code.


That would be very nice, wouldn't it. What would be more realistic is to easily use different languages for different parts of an applicaiton. I think .NET does a reasonable job of this. and it is also possible in JVM languages, although I'm not sure how easy or nice it is.

View PostDarenR, on 17 June 2013 - 01:13 PM, said:

Eventually I believe that all the languages will give way to a more standardized community language where all the best parts of the current languages will be morphed into the new language.


That would be a terrible shame. :(
Was This Post Helpful? 0
  • +
  • -

  • (5 Pages)
  • +
  • 1
  • 2
  • 3
  • Last »