logo

 

     
 
Home
Site Map
Search
 
:: Bitwise Courses ::
 
Bitwise Dusty Archives
 
 
 

rss

 
 

ruby in steel

learn aikido in north devon

Learn Aikido in North Devon

 


Section :: Rants and Raves

- Format For Printing...

Are New Programming Languages Bad?

Something old, something new...
Monday 15 September 2008.
 

Creating a new language is fascinating, exhilarating, infuriating and frustrating. But sometimes you end up feeling as though it makes you one of the bad guys...

Ever since my company, SapphireSteel Software, announced that we had begun work on a language called Sapphire (which we are developing for the Dynamic Language Runtime on .NET), we have noticed that a sizable number of people feel that what we are doing must be either a) bad, b) misguided, c) unnecessary, d) doomed to failure or e) all of the above.

OK, so maybe they are right and maybe we’ll live to rue the day we ever embarked on this project. But, frankly, that’s our problem - we are the people putting all the time and effort into Sapphire. If that time and effort is wasted, it’s our loss, not anyone else’s. So I admit to finding it a little bit odd that some people feel such antipathy to the project.

Here is a small sample of some of the reactions we’ve had:

(1) “No new languages. Please. No more.”

(2) “I still don’t get it why one need to adopt a new language. Ruby was already there. What’s the point in making the user learn new syntax. It was better having a standard one in place.”

(3) “We are creating a new ruby! Here is what we did: We removed the best features from it and changed some internal implementation details.”

To be fair, some comments have been more positive:

(4) “I applaud your aspirations, and wish you well. As a professional Delphi developer, I have taken a personal interest in Ruby for several years but have never fully committed myself to it. Though elegant in many ways, it simply did not appear to be in the same league as Delphi in terms of IDE and applicability to desktop applications. As I see it, Sapphire will target these specific issues. Just as importantly for me, Sapphire is looking to find a place on the podium alongside such notables as Delphi and C#. That being the case, I look forward to the day when I can seriously consider Sapphire as a viable alternative to Delphi.”

And:

(5) “New languages are a good thing. Some don’t make it mainstream and some do: a sort of selection of the fittest. But how else would the foundation of out industry evolve? Lots of people have new and great ideas, and in our field, programming languages are a major result of those ideas. Learning new languages is a great way to learn new ways to think about programming too. I think that the Sapphire project has some intriguing goals, and I will definitely be keeping my eye on it.”

Positive comments don’t help us write Sapphire any faster but they do give us encouragement. They let us know that there are some people ‘on the same wavelength’ - people who find the creation of new languages worthwhile, interesting and (potentially, at least) useful.

I should say that I have no problem with scepticism. It is entirely reasonable to ask what is new or different about a language and why anyone should want to use it. I don’t want to go over the specifics of Sapphire here. If you are interested, the place to look for all the latest news is on the SapphireSteel Developer’s Blog. We haven’t even yet said what the really Big feature of Sapphire will be - the thing that motivated us to develop it in the first place (we will only give the full details when we are closer to having a working implementation). Suffice to say that Sapphire is a forward-looking language and is not just trying to duplicate what is already available.

But while scepticism is fine, I don’t really understand the cynicism. Why is it that some people feel that new languages are, in essence, bad. This is the “no, no more new languages!” attitude. This doesn’t make any sense to me. Every language was new once. Ruby itself isn’t that old (it’s been around for about a decade and it’s only been only a couple of years since it garnered a really active programming ‘community’).

Back To The Future

If people didn’t create new languages, Smalltalk would never have been invented and we’d all now be programming in Fortran and Cobol. Smalltalk is, of course, rather a special language and one that is very dear to me. Even so, cynics might dismiss it as one of the ‘failed’ languages - after all, most of the programs in use today are written in something else - often C, C++ or some other C-like variant.

In another sense, however, Smalltalk is one of the great successes. Its ideas were so remarkable and so influential that they continue to shape today’s computing. Graphical user interfaces, IDEs and even object orientation were all brought out of the research labs and into the mainstream thanks to Smalltalk. Without Smalltalk there would be no C++, C#, Java or Ruby.

Another ‘failure’ (you might say) was Pascal. I mean, how many major, real-world applications have been written using the Pascal language as originally defined? In fact, it took a new, totally non-standard version of the language, Borland’s Turbo Pascal, to transform Pascal (which was, in any case, originally intended to be a teaching language) into a successful application development language. Pascal purists may well have felt betrayed by Borland (“What’s the point in making the user learn new syntax?” they may well have asked). But the Turbo product became the only Pascal to have mainstream success and it was later followed by another (even less ‘standard’) language, Object Pascal, which formed the core of the Delphi programming system.

Meanwhile, the creator of Pascal (Niklaus Wirth) went on to write other Pascal-like languages - Modula-2 and Oberon. Once again, these failed to become major application-development languages but they have nonetheless, proved to be influential. I make no secret of the fact that Modula-2 has greatly contributed to my own ideas about the importance of ‘modularity’ and implementation-hiding (not just ‘data-hiding’) as an essential part of the encapsulation provided by the Sapphire language.

Let me be honest. I am a language geek. While I accept and value the necessity of fixed standards in established languages, I certainly do not consider the development of new languages to be undesirable any more than I consider the development of new vacuum cleaners (yes, I do indeed have a Dyson), new medical treatments or new rock music to be undesirable.

By all means, use your 1960s Hoover, take no drugs more modern than aspirins and listen to no music post-Beatles. That’s your choice, just as it is your choice to decide on which programming language to use. But the Hoover, the aspirin and The Beatles were all new once. And, unless technology, medicine, music, programming and every other field of human endeavour are to stagnate, we must hope that there will always be people ready to move forward in an effort to create music, science and computer languages for the future. Most will fail. But out of that mass of honourable failures there will be a few successes.

That surely can’t be a bad thing. Can it...?

AddThis Social Bookmark Button

Forum

  • Are New Programming Languages Bad?
    13 February 2010, by Michael J. Welch, Ph.D.

    From the looks of the Sapphire home page, work has stagnated or the project has been abandoned. Is that true?

    • Are New Programming Languages Bad?
      13 February 2010, by Huw Collingbourne

      We are currently focused on the recent release of our Ruby IDE, Ruby In Steel and the forthcoming release of our Flash Platform IDE, Amethyst. We still have the core work on Sapphire in house but further development has been delayed largely due to the huge effort that has been required in the creation of Amethyst.

      best wishes

      Huw

  • Are New Programming Languages Bad?
    13 February 2010, by Michael J. Welch, Ph.D.

    What I hate most about products these days, whether they be scripting languages, IDEs, or any other user application, is that everything depends on a hundred other pieces, and getting all the prerequisites installed first almost requires a systems engineer.

    I know programs like aptitude are supposed to handle this, but some programs have SO MANY dependencies, even the builder of the program can’t keep it all straight.

    Also, languages should be able to do the normal stuff people do, i.e., read/write data in a database, print, communicate through a network connection, interact with the user, run more than one task at the same time (not single thread "multiprocessing" like Visual Basic has), and so forth. Pascal and Argol proved how worthless an academic language can be for real programs, I mean, the kind people pay for.

    I hope Sapphire addresses these concerns. Also, is Sapphire going to be a Windows only language? If so, it’s life will be short.

  • Are New Programming Languages Bad?
    17 May 2009, by beekay

    For the last 20 years or so, the industry has been awash with new languages following concepts and paradigms of C and Simula. We definitely do not need yet another one of those. Absolutely not. This horse has been beaten to death many times over.

    On the other hand, there have been very few new languages following concepts and paradigms of Smalltalk over the last 20 years, even the ones which do have only appeared in more recent years. This is a good thing. We need far more of that.

    Sapphire would seem to me to fall into the latter category, so I say, this is a welcome new language effort, whether it becomes successful or not. If people don’t try to make new stuff, there won’t be any failures but there won’t be any successes either.

    • Are New Programming Languages Bad?
      20 June 2009, by MIthikoS

      To create a new programming language, You need first to distinguish what kind of problems you want to solve with that language.

      So, you need first to find the problem. At the current moment ,one more language will confuse programmers but... if the language can combine maths/physics/neuron/simulation and common programming(industrial programming) maybe make the difference.

  • Are New Programming Languages Bad?
    18 April 2009, by Rolly Noel

    Will Sapphire rise & shine soon?

    • Are New Programming Languages Bad?
      18 April 2009, by Huw Collingbourne

      We’ll have more news on Sapphire following the launch of Amethyst (our Adobe Flex IDE).

      best wishes

      Huw

  • Are New Programming Languages Bad?
    16 March 2009, by Matthew

    If you like making new languages, then by all means make them.

  • Are New Programming Languages Bad?
    14 January 2009, by Fresheneesz

    Maybe people think its a fork of Ruby beacuse on http://sapphire-lang.org/ , it says:

    "Sapphire is a fork of the Ruby programming language."

    ......

    Is this lost on you?

    • Are New Programming Languages Bad?
      14 January 2009, by Huw Collingbourne

      That is a completely unrelated project.

  • Are New Programming Languages Bad?
    17 September 2008, by Max Werner

    Creating a new language is fun. If you think you have some good ideas then go on, bring them to live. I like to see new languges, like to see if they contain things I never thought of, like to explore new ways to solve a problem. What a wonderfull idea to write a programming language which works the way you ever wanted to have worked with. Go on, do it for yourself (and for me) - and have a lot of fun!

  • Are New Programming Languages Bad?
    16 September 2008, by Bram Geron

    I think it’s not a bad idea to try creating a better language. You’re trying it for Ruby, I’m trying it for Lisp. You can only learn more about languages, and maybe (although it’s hard to beat existing languages), it’ll even be better than existing languages for a group of people. I hope to see your result one time :)

    I don’t know if it’s a good idea in a company to use a language that only few use. That means there are less people working on it than bigger languages, which means less bugs fixed and less libraries (although that may not be an issue as you’re targeting CLR.) Also, communication with other companies may be harder. It takes time to develop the language, time in which you could have developed another product. But it may be worth it, even if it only resulted in the piece of mind of having tried at least once.

    I’m keeping an eye on Sapphire, I’m curious :)

  • Yes, 99% of New Programming Languages are Bad.
    16 September 2008, by Greg M

    Yeah sure, agreed. If you’re a professional language researcher. Otherwise take the appropriate existing language and write a library or a retargetted back-end to achieve what you want. If you don’t know which is the appropriate existing language, then see point one.

    Do you want to doom the world to the legacy of the next COBOL?

    I didn’t think so.

  • Are New Programming Languages Bad?
    15 September 2008

    I think the biggest problem is creating a "mainstream" language.

    No matter how much I dislike perl, I think perl is still a "mainstream" language.

    As are ruby and python (I am a ruby guy myself.)

    The thing about IDE is definitely true but then again there were multiple ways to define how a language can evolve. I think for perl (and in essence the "better perl", ruby) it was that it started to simplify little tasks, not to create fully fledged GUIs. Only later were the tasks extended, with bindings towards Gtk, Qt etc..

    So I think the biggest influential factor is how popular a language can really become - and in other words that means how many people will use it, and continue a given language. I myself abandoned php a few years ago in favour of ruby and have not regretted it any single second (quite the opposite). PHP has lost me as a developer, I am still a "user" of php software (i.e. phpbb3) but as far as I am concerned I am not really interested in how php "evolves" as a language anymore. I reckon many people feel similarly about other languages and sticked to "their" language.

    Having more languages available is not a bad thing, but I think people often misunderstand that there is so much work to do. A good language really was a LOOOOOOOOOOOOOOOOOOOT of effort.

  • Are New Programming Languages Bad?
    15 September 2008, by Brett Morgan

    I think what you are hitting is a pain reaction. New languages invariably mean late nights spent feeling like a newbie, fighting to understand a language and it’s library.

    As an old hand at this game, I try to learn a new language at least once a year...

  • Are New Programming Languages Bad?
    15 September 2008, by amackera

    If you love language development, go ahead and develop! Why anyone would be hostile towards you is beyond me.

  • Are New Programming Languages Bad?
    15 September 2008

    "We haven’t even yet said what the really Big feature of Sapphire will be - the thing that motivated us to develop it in the first place..."

    And that seems sufficient explanation for the “I still don’t get it why one need to adopt a new language." reaction.

    Maybe you should read "“No new languages. Please. No more.”" as "No more unmotivated languages."

    • Are New Programming Languages Bad?
      16 September 2008

      I should say that we have been entirely open about the main language features - the actual design of Sapphire and the guiding principals of the language. There are just one or two important goals for Sapphire that we have yet to talk about (but shall do in the near future). Sorry to be vague but I’d prefer to write about "this is what we are doing now" rather than "this is what we hope to do at some distant date"... ;-)

      When I mentioned that there is still a ’Big’ idea that we haven’t written about, the point I was making is that we have thus far given only limited information on Sapphire. But even so large numbers of people have confidently assumed that they knew exactly what sort of language Sapphire was and that our efforts were wasted. That is, perhaps, the most frustrating thing about the negative reactions we’ve received: some people’s assumption that they know exactly what we are trying to do and that our efforts must be doomed to failure.

      Two common reactions are that a) we are trying to ‘fork’ Ruby or that b) we are rewriting Python.

      A ‘Ruby fork’ is seen to be damaging to Ruby itself. I can’t recall how many times I have said that Sapphire is not Ruby, not a fork of Ruby, not remotely compatible with Ruby, in fact hugely different from Ruby, but still people continue to insist that we are, in fact, ‘forking’ Ruby.

      Then again, several people have said that we are trying to write a language "just like Python". This seems to be based on the fact that we have said that Sapphire will have a simple, unambiguous syntax. To some people this means that we must have been influenced by Python. This is certainly not the case. Neither myself nor Dermot Hogan (the other Sapphire designer) had, until recently, programmed in Python at all. In fact, I subsequently learnt some Python purely in order to see if there was any close resemblance between Python and Sapphire (this isn’t).

      The thing I find oddest (and most dispiriting) is the attitude that anything new in programming must inevitably be either the ‘just the same’ as what is already there (‘a fork of Ruby’ or ’just like Python’) or, if it is different, then it must necessarily inferior (I get the feeling that some of Sapphire’s critics have been so passionate about Ruby that they object to Sapphire because it isn’t Ruby which they interpret as some sort of implied criticism).

      Anyway, development on Sapphire goes on apace. In the months ahead, I’ll give increasingly more detail about its design, its goals and its implementation over on the SapphireSteel site.

      best wishes

      Huw

      • Are New Programming Languages Bad?
        16 September 2008

        > "...the point I was making is that we have thus far given only limited information on Sapphire. But even so large numbers of people have confidently assumed that they knew exactly what sort of language Sapphire was and that our efforts were wasted. That is, perhaps, the most frustrating thing about the negative reactions we’ve received: some people’s assumption that they know exactly what we are trying to do and that our efforts must be doomed to failure."

        Surprise! If you don’t provide information then people will make guesses and assumptions!

        • Are New Programming Languages Bad?
          16 September 2008

          We aim to provide information that reflects the current state of development of Sapphire. If we were to go too far beyond this, then people would (quite reasonably) accuse us of producing ’vapourware’.

          As we make more progress we will, of course, provide more information. We are trying to be as open with our development as we can be without trumpeting features that are in such an early phase of development that we have little more than untested ideas to offer. I don’t think we can be accused of holding back on information relating to Sapphire - to date we have discussed its syntax and semantics, we have given fairly detailed information on its approach to OOP and encapsulation, we have stated the target platform (the DLR) and the grammar development tool (ANTLR). One of the designers of Sapphire is even writing a series here in Bitwise explaining how to use ANTLR and the DLR to design and implement a language of your own. In short, I really do believe that we are giving a pretty good step-by-step account of the design and implementation of Sapphire. It is not yet a complete account since the design and implementation are not yet complete. But as our Big Ideas become real-life existing things, I promise you that we will explain them in mind-numbing detail ;-)

          best wishes

          Huw

      • Are New Programming Languages Bad?
        16 September 2008, by Robert

        OK Saphirre is a Ruby wannabee. Loser

        • Are New Programming Languages Bad?
          16 September 2008

          Get a life, troll.

  • Are New Programming Languages Bad?
    15 September 2008, by Mike

    OK, so maybe they are right and maybe we’ll live to rue the day we ever embarked on this project. But, frankly, that’s our problem - we are the people putting all the time and effort into Sapphire.

    If your company sells or otherwise provides this language or things written in this language to people outside the company, it suddenly becomes the problem of a lot of other people. If you think it’s *only* your problem, you’re not thinking about this correctly.

    Maybe your language will turn out to be the best thing since sliced bread, but statistically, it almost certainly will not be. I’m scratching my head to think of any good language that’s turned up in the last 20 years that was not either (i) distributed as Open Source, or (ii) distributed by Microsoft. (Not sure there are any in the second class, either.)

    But, finally, do you really *want* to own a language and its entire development and maintenance load? Many, many companies before you have dashed themselves on those rocks...

    • Are New Programming Languages Bad?
      16 September 2008

      I should say that our language specification/definition will be entirely ’open’ and we are happy to assist anyone who wishes to implement it on other platforms.

  • Are New Programming Languages Bad?
    15 September 2008, by Fogus

    Some people have a visceral reaction to learning new languages, as if the creation of a new one will require that they learn it.

    One more language? Nay! I say 40,000 more!

    - m

    • Are New Programming Languages Bad?
      16 September 2008, by Brad

      Huw- Have you heard of Groovy? Groovy is (was) *supposed* to be the new uber-dynamic language to run on the Java VM. Well there are quite a lot of people who are disappointed with the far-reaching design goals of that language and refer to its inconsistent syntax structure as making it impossible to create coherent algorithms. I can understand your reluctance to not release details on your language till the design has been solidified, but to be honest, you should not really release information at all about the language until you have proven results. The reason being is that programming languages can be classed in to main catagories: a) theoretical languages: languages like Simula, Modula, Lisp, that set out to invent an entirely new kind of programming concept. Or you have b) utility languages: languages like C, Python, Perl, that were simply designed to get a job done and prioritize usefulness over theoretical soundess.

      Im sorry to tell you this, but until you have some results in hand, even if its just conceptual results, your "were working on a building a programming language" statements are akin to an 8 year old with toy chemistry set announcing he going to find the cure for cancer.

      • Are New Programming Languages Bad?
        16 September 2008

        I understand what you are saying. However, we decided at the outset that we would take interested users through the entire process of the design and implementation of Sapphire, rather than have a Big Bang release.

        Accordingly we have already started explaining the language design and implementation goals on the SapphireSteel Developer’s blog. As I said, Dermot is even writing a series on how to use ANTLR and the DLR to implement a language here on Bitwise. In the near future we will release the Sapphire grammar (for ANTLR). In short, if we are playing with a toy chemistry set, at least we will provide everything everyone else needs to play along too ;-)

        As for Groovy... I haven’t followed that closely but if, as you say, "a lot of people who are disappointed with the far-reaching design goals of that language", I think that only goes to support my own reluctance to promise too much too soon. We are being careful only to discuss goals which we can achieve in the short/medium term. We would much prefer people to assume that our ambitions for Sapphire are fairly low and then be pleased when they find we exceed their expectations than the other way about...

        So, at the present day, the story remains this: Sapphire is a rigorously encapsulated OOP language with a simple Ruby-like syntax and will be implemented on the DLR for .NET (supported by a similar range of design tools to those which we have already implemented in our the Ruby In Steel IDE). You have to remember that we already have an IDE (editor, debugger, visual designer) and a parser/lexer and a Ruby IntelliSense engine which is, effect, a Ruby analytical interpreter. So even before we started work on Sapphire we had a substantial code-base and toolset on which to build. We are not starting from zero.

        The description which I give above of Sapphire is something which I am sure we can achieve within a reasonable timescale. Beyond that, there are other features of Sapphire which we will announce when we have something concrete to show. That remains our objective. It is certainly your prerogative to be sceptical. But I don’t understand how making announcements of intent far ahead of our development schedule would be a productive approach to take. I prefer what we are doing: describing the current development process. Our longer term goals will be described when we have made more progress towards achieving them.

        best wishes

        Huw


Home