Want more...Languages

Posted by on in Blogs
I recently re-watched "The Lord of the Rings" (LOTR) movie trilogy. Remember the LOTR phrase, "One Ring To Rule Them All"?  Could there ever be "One Programming Language To Rule Them All" (OPLTRTA)?  In the early years of our industry there were loads of new languages appearing each year (History of Programming Languages).  There were also attempts to create best of all worlds programming languages.  PL/I was an attempt to take parts of ALGOLFORTRAN, COBOL, and added numerous data types, dynamic arrays and strings, exception handling, separate compilation, and system programming.  PL/I started as a specification for a "new programming language" or NPL.   Interestingly, PL/I had no reserverd words.  PL/I passed Donald Knuth's famous "Man or Boy" programming language test.  This test checked to see if a programming language supported recursion and non-local references.

So called, Fourth Generation Languages like, Rapidly Extensible Language (REL), and even English as a programming language were early attempts to create an OPLTRTA.  For a time, especially during the period of 1970-2000, there were few notable and important programming languages.  During these years, developers have used COBOL, LISP, Pascal, Basic, SmallTalk, C, C++, C#, PHP, Perl, Eiffel, Ada, JavaScript, Java, Ruby, and Python.

Neal Ford talks and writes about the prevelant use of "Polyglot Programming".  Jon Bently, author of the "Programming Pearls" columns and books, celebrates the creation and use of "Little Languages". I first heard the term, Little Languages, was at the talk Jon gave at the Second Annual Software Development Conference at the San Francisco Marriott (one of the most memorable keynotes I've ever attended).

In recent years Functional Programming Languages (F, Haskell, Erlang, and Scala) and Domain Specific Languages have appeared.  Some of the programming languages that have been around for awhile have enjoyed renewed interest.  Objective-C, a programming language designed by Dr. Brad Cox (C with Objects influenced by SmallTalk), has enjoyed new popularity because of the success of Macintosh OS X and the iPhone/iPad.  Ruby, a dynamic programming language designed by Yukihiro “matz” Matsumoto (taking some of the best parts of SmallTalk, Eiffel, Perl, Ada, and Lisp), gained greater worldwide recognition because of the Ruby on Rails framework.

There are also the "fun" worlds, languages, and educational systems to teach programming, interaction, and automation including Alice, Squeak , Scratch, ToonTalkProgram by Design, Karel the RobotGuido van Robot, and Lego Mindstorms. With all this wonderful work being done, the language and programming junkie in me is in seventh heaven.

C++ continues to evolve to meet the needs of developers.  What started, by Bjarne Stroustrup at AT&T, as C with classes in 1979 has evolved to become an international standard ratified in 1998.  There was a minor revision in 2004.  We are now close to the completion of an update of the C++ language standard, the affectionately named C++0x.  C++Builder continues to be enhanced to support the C++ language and standard libraries.

At Embarcadero Technologies, we continue to modernize the programming language capabilities of Delphi to meet the demands of new software architectures, new platforms, and new hardware advances.  What started as Turbo Pascal has continuously evolved with the addition of objects, interfaces, structured exceptions, nested classes, default parameters, for..in, inline functions, operator overloading, RTTI, generics, anonymous methods, dynamic arrays, class helpers, attributes, and more.

RadPHP XE, our latest release of our PHP IDE and component library, extends the objects of PHP with the implementation of PHP components (properties, methods, server side and client side events). RadPHP increases web development with a completely integrated, rapid visual development approach and component framework for PHP.

Prism, the cross-platform development solution and robust programming language for rapidly developing .NET, Mono, ASP.NET, and data-driven applications for Windows, Linux, and Mac OS X.  Prism implements many language enhancements for .NET (and beyond C#) including parallel for loops, futures, class contracts, aspect oriented programming, asynchronous statements and methods, and enhanced nullable types.

One way to keep track of programming language trends is to follow TIOBE Software's Programming Community Index of languages. Evans Data Corporation also tracks programming language and software development trends (they have been researching and tracking developers and development for more than 12 years).

Should we attempt to create an OPLTRTA (can we even pronounce it: "oh-plet-trita")?  Can we build such an programming language animal and convince everyone to abandon their favorite language(s) and move to it? Or, should we continue to enhance the programming languages we have to meet the needs of developers today and into the future? What do you think?

Gold User, Rank: 1, Points: 2466
David Intersimone (known to many as David I.) is a passionate and innovative software industry veteran-often referred to as a developer icon-who extols and educates the world on Embarcadero developer tools. He shares his visions as an active member of the industry speaking circuit and is tapped as an expert source by the media. He is a long-standing champion of architects, developers and database professionals and works to ensure that their needs are folded into Embarcadero's strategic product plans. David holds a bachelor's degree in computer science from California Polytechnic State University at San Luis Obispo, California.


  • Guest
    Stephen Boyd Tuesday, 12 July 2011

    Isn't talking about an OPLTRTA rather like talking about a unviersal tool. You know, the one and only tool you will ever need to carry. Get rid of your toolbox and as long as you have the universal tool you will be able to repair your car, build a new deck for your house, drive screws, hammer nails, solder pipes, etc., etc.

    Just as you should always use the right tool for the job at hand I think there will always be different programming languages that will be used depending on just what it is you are trying to accomplish.

    While you can write a compiler in Cobol or a general ledger system in Javascript, would you really want to?

    I am more interested in the idea of getting rid of programming languages entirely. Having a tool that would build a system from a functional specification without the need for a lot of tedious bit twiddling would be my idea of paradise.

  • Guest
    David I Tuesday, 12 July 2011

    Stephen - yes - all you need is: http://www.swissknifeshop.com/shop/swiss-army/executive-swiss-army-knives/swiss-army-giant-by-wenger" rel="nofollow">Swiss Army Knife Giant, a http://www.swissknifeshop.com/shop/leatherman/multi-tools" rel="nofollow">Leatherman Tool, Emergency Blanket, Magnesium fire starter stick, etc. :)

    Regarding getting rid of programming languages completely? There was an effort to build Executable UML. There are also BPML engines. For me, I am all for automating as much as possible without code, but I also want the choice to do some "coding" when I need to.

    One early vision for Delphi, when it was code named "Monet", was to provide an IDE, components and automation so that you could build applications without writing code. With today's Delphi you can built a lot of your application with components and actions. You can still build a master/detail client/server application using forms, components and pre-defined dataset actions.

    When Paradox for DOS was being built by Rob Shostak and Richard Schwartz, at their Ansa Software start-up, did not have a language. When they showed it early on to investors they were told it needed to have a scripting language. Since Paradox was written in C, they built in the PAL language which looked like C. Rob and Richard were both PhD - some referred to them as a "Pair of Docs". http://en.wikipedia.org/wiki/Paradox_(database)

  • Guest
    David I Tuesday, 12 July 2011

    Stephen - a follow up comment - RAD Studio has 4 programming languages included. When we use these to build business applications - desktop, server, datasnap multi-tier, web - we are also using JavaScript, HTML, and SQL.

    I, too, am a true believer of using the right language for the right job. Thankfully, RAD Studio has the languages I need for the types of application I list above. For Mobile, I can use native languages on the devices I have (and need to support). Eventually, we will have native code compilers for a wide range of processors and platforms.

  • Guest
    zeroc8 Tuesday, 12 July 2011

    To me, the most important indicator of language usage is Github. Delphi (together with FPC) is only the #35th in popularity there (Javascript being #1), even being outshined by new languages like Go (#29) or D(#26). It would be great if you could encourage the Delphi community to post more source code there. Just to show that Delphi is still alive.

  • Guest
    Patryk Nusbaum Tuesday, 12 July 2011

    Delphi is an excellent choice, but I still miss some features from it, like operator overloading for classes (as for now, available only for .NET), and multiple inheritance (native). Hopefully the new Delphi version, except of support for MAC, will bring some new fresh innovations to the RTL and the syntax itself.

  • Guest
    Fabricio Wednesday, 13 July 2011

    @Patryk: Multiple inheritance? So you have to decide which ancestor to use when they both share some feature when implementing? The only good working implementation of it is genetics (DNA, RNA and the like). Nature really have done a much better job. Designs on MI are pretty much screwed in a way or another.... Even C++ developers avoid it and the language have it (correct me if I'm wrong) since 1991.
    Operator overloading, on other hand, can be handy.

  • Guest
    Stephen Boyd Wednesday, 13 July 2011

    David - This would be a great discussion to have over beer. :)

    I have been programming for the better part of 40 years and I still haven't found a better way of developing applications than using an IDE like Delphi. I served my time slaving away with so called 4th generation languages in the 80s and 90s. And they were great if your needs were simple. But the minute your needs got beyond "read a record, populate the form, update the record" things got ugly quickly.

    I guess this is a long way of saying that, even though I may dream of programmerless application development, I'm not holding my breath. In my experience, trying to develop from UML or BPML or something similar is just replacing really mature and capable languages that already exist with higher level, often less capable languages that haven't proven themselves yet. At some point you still have to leave the high level world and return to languages like Delphi to get the complicated stuff done. Just like we had to resort to assembler when Cobol or Fortran ran out of gas in the early days.

  • Guest
    Vijay Wednesday, 13 July 2011

    The possibility of building a OPLTRTA is not possible since there will always be somebody or other to challenge the supremacy. But Language developers can make there language supreme by it features and flexibility and ease of development and most important or all the decision of making it Open source or Payed.
    Coming to Delphi this is a language which has been there since long time and it was at boom in the initial point and due to transition it lost market and now struggling to keep up with the market and Competition, to over come these things Delphi after coming into Embarcadero could have made it open source with the flexibility and Ease this language offers its popularity would have touched roof. second instead of developing a language for a .Net if they have developed it for JVM the Reach Delphi would have got is enormous (Stand Alone,Web,Server, Cross Platform, Mobile....Etc Etc).

  • Guest
    WarrenP Thursday, 14 July 2011

    I really like Python as a simple teachable, readable and eminently powerful language syntax. Of course, as a very high level dynamic language, its runtime performance remains in some cases, inferior to Delphi and C++. However it runs fast enough for a lot of people to do a lot of amazing things with it.

    Since Ruby and Python have similar capabilities, people often pick one out of the two, and having tried both, they pick one that suits them. Nothing "fits my brain" quite as well as Delphi does, but when I need a portable cross-platform language for scripting, integration, testing, and "super batch files", Python is it.


  • Guest
    Blake Tuesday, 2 August 2011

    Python would be a good fit with a Delphi-style RAD.

    Javascript isn't my favorite, but it would make sense to leverage it in a RAD way. A Delphi that compiled to Javascript would certainly be fun. Like CoffeeScript? Then you'd have something like...whatchamacallit...Morfik.

    Dreamland? A Smalltalk. I love Squeak (and Pharo and Cog and Spoon and all the other variants) but I'd love to see a Smalltalk that played well with others.

  • Please login first in order for you to submit comments
  • Page :
  • 1

Check out more tips and tricks in this development video: