Slashdot Mirror


Lisp and Ruby

sdelmont writes "The developers of Rubinius, an experimental Ruby interpreter inspired by SmallTalk, have been discussing the possibility of adding a Lisp dialect to their VM. Pat Eyler collected some ideas and opinions from the people involved and it makes for some interesting reading. For many, Ruby already is an acceptable Lisp, and the language itself started as a 'perlification' of Lisp (even Matz says so) so it is perhaps fitting and might help explain why the whole idea feels right. Now, if someone added support for VB and gave it the respect it deserves, the world would be a better place."

336 comments

  1. VB already gets the respect it deserves... by GotenXiao · · Score: 0, Flamebait

    ...absolutely none. It's a horrible language. The only thing it has going for it is the reasonably useful IDE (although even that irritates me most of the time).

    --
    Goten Xiao
    1. Re:VB already gets the respect it deserves... by Timesprout · · Score: 4, Insightful

      Yeah, how dare MS make it easy for developers and even non developers to quickly create applications to fulfil their requirements.

      --
      Do not try to read the dupe, thats impossible. Instead, only try to realize the truth
      What truth?
      There is no dupe
    2. Re:VB already gets the respect it deserves... by Anonymous Coward · · Score: 1, Insightful

      Thousands (millions?) of "I can't code my way out of a wet paper bag" programmers would disagree with you.

      From a technical perspective it might suck but it works a lot of people (especially non-programmers) to get real work done.

    3. Re:VB already gets the respect it deserves... by Anonymous Coward · · Score: 1, Insightful

      It's horrible if you don't use it as it should be used. Just like C gets horrible if 50% of your lines of code start with # .
      VB (and even more VB.NET) is a language where you clearly see the difference between a rookie programmer and a pro. The sad part is that they market it as targeted to the rookie which has unlimited potential for damage (starting from the option strict off).

    4. Re:VB already gets the respect it deserves... by iJed · · Score: 0, Flamebait

      absolutely none. It's a horrible language

      What is worse are the idiots who program in it. They will blindly defend it even though (in general) they have never used and have no knowledge of any other language.

      I have met VB.NET developers who do not understand what an array is. I have yet to meet a VB.NET developer who:
      • Understands what an interface is
      • Understands what a class method is
      • Understands inheritance
      • Really understands the difference between reference and value types
      • Uses classes instead of modules
    5. Re:VB already gets the respect it deserves... by S.O.B. · · Score: 4, Insightful
      From a technical perspective it might suck but it works a lot of people (especially non-programmers) to get real work done.


      And when that program gets too big for them to maintain (or they just don't feel like it anymore) they dump it on their IT area and we're stuck maintaining or converting an app in a technology we wouldn't have chosen that looks like it was designed by a pack of drunken monkeys.

      Build a tool even an idiot can use and only an idiot will want to use it.
      --
      Some of what I say is fact, some is conjecture, the rest I'm just blowing out my ass...you guess.
    6. Re:VB already gets the respect it deserves... by marcosdumay · · Score: 2, Insightful

      That is notthe problem. How dare Microsoft makes it so HARD to write good, clear and maintanable code on their language?

    7. Re:VB already gets the respect it deserves... by Iamthefallen · · Score: 4, Insightful

      That says far more about your circle of friends/co-workers than it does about the language.

      --
      Wax-Museum Fire Results In Hundreds Of New Danny DeVito Statues
    8. Re:VB already gets the respect it deserves... by Flodis · · Score: 3, Insightful
      Build a tool even an idiot can use and only an idiot will want to use it.
      I'd like to change that to "Build a tool even an idiot can use and expect idiots will try to use it."

      I've been on the receiving end of many a poorly designed VB app, but is that the language's fault?

      Assume we collect a random number of 3rd graders' essays. We can safely assume they will be pretty badly written. Do you automatically blame 'english' for the essays being bad? Maybe you also tout another language as superior just because the only ones you know speaking that other language are all 20+, and have picked up a bit or two about telling a story.

      Btw, english is not my first language, and I think the VB slamming that is so fashionable around slashdot is just stupid. Not that I think there's any doubt about either after this.
    9. Re:VB already gets the respect it deserves... by Colin+Smith · · Score: 1, Flamebait

      As horrible as it might be and as crap as the developers may be, they actually produce useful software. VB is programming for people who don't really want to program. They don't want to learn a beautiful or elegant language they just want the result to be x, y and z and they don't care how to get there, they don't even care very much about performance. It's good enough and that's all that matters.

      --
      Deleted
    10. Re:VB already gets the respect it deserves... by hclyff · · Score: 4, Insightful

      This is exactly the kind of reply I would expect from a VB developer or "non developer". By "quickly create applications to fulfil their requirements" you probably mean "create a horrible unmaintenable mess which not even the original author will touch, and which has is almost certainly going to be rewritten by a developer at some point in future". Enabling non developers make production code is *NOT* a good thing, I think most people with some experience in the industry will agree with this.

    11. Re:VB already gets the respect it deserves... by Snarfangel · · Score: 2, Interesting

      ...absolutely none. It's a horrible language. The only thing it has going for it is the reasonably useful IDE (although even that irritates me most of the time).

      I guess you don't want to try SNOOZ, which is my COBOL-ification of VB.

      --
      This tagline is copyrighted material. Please send $10 for an affordable replacement.
    12. Re:VB already gets the respect it deserves... by Colin+Smith · · Score: 2, Interesting

      and we're stuck maintaining or converting an app in a technology we wouldn't have chosen that looks like it was designed by a pack of drunken monkeys. And yet it performs a useful function for the business... If you don't like it, you could always move to a different job or business.

      Or.

      Perhaps you might want to extend your remit to advocating the technologies you would choose, to the business management. Perhaps you might even want to create a development environment for personnel to produce adhoc applications in the technologies you prefer. Or shock, horror, you could even provide that service within the IT department and actively go looking for opportunities to improve productivity.

      --
      Deleted
    13. Re:VB already gets the respect it deserves... by TheRaven64 · · Score: 3, Insightful
      Before VB, NeXT released a Rapid Application Development environment. It used Objective-C, which can be used as a language almost as high-level as VB in some ways, and higher-level in others. It also allows programmers who know what they are doing to do all the sorts of evil things that give C such a bad reputation. The language, however, is largely irrelevant. The frameworks are the important thing (these days you can use Smalltalk, Java, Ruby, Python or IO with descendants of the frameworks).

      When you write code using the OpenStep frameworks, designed by NeXT and tidied up by NeXT and Sun, the path of least resistance is a clear model-view-controller separation. Someone asked me last week 'do you always follow strict MVC separation in your code?' I hadn't really thought about it, but I tend to because the framework just makes that the obvious way of working. In contrast, VB encourages you to keep model information in the view objects.

      This is just one example. A good framework means that you implement good design patterns without thinking. If you do this, then your application will be more flexible and maintainable when you come to make changes to it in the future (or, more importantly, when someone else does). Developing with OpenStep is slightly harder than developing with VB. Maintaining an OpenStep application is far easier than maintaining a VB application.

      --
      I am TheRaven on Soylent News
    14. Re:VB already gets the respect it deserves... by Anonymous Coward · · Score: 2, Insightful

      Superiority complex much?

      I guess I could be considered a real programmer as I have been programming various systems for about 25 years. I program in practically every language there is depending on the project. Yes, I write VB code. I have written huge VB applications in fact. While most of my code is other languages and dispite its shortcomings, VB suits its role very well.

      Ignorance is bliss?

    15. Re:VB already gets the respect it deserves... by Siberwulf · · Score: 1

      That's not the problem. How dare Microsoft make a language that is so easy to use, people who shouldn't even be programmers are using it! (Yeah, thats about 90% of the people out there. I blame the fact that most universities still require Fortran as a base language for CS degree.)

    16. Re:VB already gets the respect it deserves... by malkavian · · Score: 1

      However, we're not talking about 3rd grader essays. I'd heartily expect a 3rd grader program to look like a pack of drunken monkeys wrote it.
      What we're talking about is "professional" coders writing VB code. A more suitable analogy would be that you go into a bookstore, and find the latest novel you purchase is full of typos, grammatical errors, missing pages, parts of the plot that vanish into nowhere, and misses the last three pages of the story. And that is how the publisher recieved the manuscript and published it. Then on talking to the company to complain, you'd discover that the author had never actually studied English at all, and thought it would be good to write a book.
      In this case, no, you wouldn't blame the language, you wouildn't necessarily blame the author themselves (as they only knew a little of what made language work). You would most likely berate the people who convinced the author that writing a book was in his realms of competency when the end result blatantly proves that it wasn't.
      But, as long as a select group prevent that author hearing the bad reviews and dark mutterings, he will continue quite oblivious. Such is the way that VB keeps on having it's acceptance. It's a basardized language intended for a prototyping role (which it does well), but is used primarily as a final product language (which it isn't). But not enough people understand the difference to be able to tell the difference, as they're all told by MS, all you have to do is read a simple book, press a few buttons, and you're as good a programmer as all the rest.

    17. Re:VB already gets the respect it deserves... by X=X+0 · · Score: 1, Insightful

      The fact that you've never met a VB.NET developer who understands those programming concepts is a result of the glut of bad programers put out there by businesses and recruiting companies training anyone they can find off the street to code when the developer population ran short. I've seen plenty of Java projects implemented by idiots that ran 3 times slower then a VB 6 program my team had written 3 years earlier.

      The difference was not and never is the language. It's the developers that come into the business b/c of the good pay ($$$) and never made it through a Computer Science degree at a 4 year school. I've been interviewing and hiring developers over the past 5 years and the story is always the same. There are those who went to school and understand the concepts, and there are those who were taught the basics at some training course and then figure out the rest by blindly stabbing at the problem until it kind of works. The sad part is that I've had interviewees actually tell me that they were a person that got into programming when some company pulled them off the street and trained them for 4 weeks, then threw them into a contract that they needed bodies in to rack up billable hours. The sad part is that those same people come out at the end of the contract thinking that they can really build something! :-(

      There's always going to be a (large) group of unprofessional idiots in any profession that requires no certification or licences and makes good money. Look how the booming real-estate market suddenly created so many "investors". All of the sudden everyone's a real-estate expert. ;-)

    18. Re:VB already gets the respect it deserves... by Andrew+Kismet · · Score: 1

      I'm a CS Undergrad, first year... and I'm working in Java. Is this a good thing or a bad thing?

    19. Re:VB already gets the respect it deserves... by Anonymous Coward · · Score: 0

      Or it could be that all these "professional" programers constantly diminish VB(.NET) in the desperate hope that people don't actually TRY it and find that it fills > 80% of all programming needs in a quarter the time of C.

      How dare these non-CS degreed mortals contribute!

      PS: VB.NET compiles to the exact same MSIL as C#, but I rarely see the latter slammed like I do the former. The curly braces must provide some protection...

    20. Re:VB already gets the respect it deserves... by knewter · · Score: 1

      How do you create a class method in vb.net?

      --
      -knewter
    21. Re:VB already gets the respect it deserves... by Siberwulf · · Score: 1



      Honestly, Java was a great tool for me to get some of the big concepts in object oriented programming (OOP). I learned all about Polymorphism, inheritence, encapsulation, etc. That said, I had a side job where I was doing basic VB.NET (when .NET first came out) which really primed me for real world web development. You're going to come across people who will argue that MS sucks, that .NET is bloated, and that life in the web has to be on Apache, not IIS6.0. Do your own research, determine you own needs, and figure out for yourself which you like. I started off fresh out of college (about a semester before) without a CS degree doing .NET development at over $50,000. IMHO, thats decent for a first out. Now, 2 years later, I'm at $75,000 a year, in a great company, doing what I know how to do. Suprisingly enough, our shop also does Java too. Its about 60% .NET, and about 35% Java, and about 5% PHP.

      </MS_Fanboy>

    22. Re:VB already gets the respect it deserves... by Anonymous Coward · · Score: 0

      I am no fan of VB, but your predicament has nothing to do with the language itself.

    23. Re:VB already gets the respect it deserves... by MrAnnoyanceToYou · · Score: 2, Interesting

      Hrm. Well, I seem to remember an article at Joel Spolsky's Site about why he thought VB was a decent tool in ways. Remember, it has no memory management; I've done memory management, and I never want to do it again unless rains of fish will occur. It's not that it's hard, it's just that it's silly for me to do. How can you possibly feel differently?

      Additionally, if VBA didn't exist you'd have to write C++ to do simple macro'ing in Office products. It's profitable, but it bites the big one as far as interesting programming jobs are concerned. Trust me on that one.

    24. Re:VB already gets the respect it deserves... by Flodis · · Score: 1

      We agree on some parts, and differ in some... In the book analogy, I would firstly blame myself for not browsing through the pages of the book before buying, then I'd blame the publisher, then finally the author. I think most of the actual blame would go to the publisher for the inferior product, and I guess the publisher is the one who convinced the author that the book was ready for publishing. So... it probably means we agree there...

      However, I'd say the 'professional' VB coders write about as crappy VB code as the 'professional' coders using other languages. It's the amateurs that are bringing down the averages. In other languages you don't see as many amateurs because the languages and/or environments are just too hard to use.

      I've used the example before, but it'll do again; A guy who wouldn't get past the makefiles of C/C++ may be able to write actual working programs in VB. That he calls himself a 'professional' does not make him one.

      By the way, are you of the opinion that it is better to have a working program, or that it's better to have a non-working makefile? (And who or what would you blame?)

    25. Re:VB already gets the respect it deserves... by namekuseijin · · Score: 1

      "VB is a language where you clearly see the difference between a rookie programmer and a pro."

      Holly crap! There are pros programming in VB?! I always thought they moved on to better tools once they got past the beginner stuff, like Logo, VB etc...

      --
      I don't feel like it...
    26. Re:VB already gets the respect it deserves... by perkr · · Score: 1

      How do you create a class method in vb.net?

      So what? Is that all you could think of that makes an enormous difference to many projects out there? VB.NET looks quite OK to me though I prefer Java or C# if I have a choice. The greatest problem with VB.NET is probably that it is not VB6, and folks used to VB6 may need to update their skill set a little.

    27. Re:VB already gets the respect it deserves... by NittanyTuring · · Score: 1

      • Understands what an interface is
      • Understands what a class method is
      • Understands inheritance
      • Really understands the difference between reference and value types
      • Uses classes instead of modules
      Sounds like a user of functional programming languages! (LISP, ML, Haskell, etc) To be precise, interfaces are used, the difference between reference and value type is explicit, and OOP is often bolted on, as in CLOS and OCaml. But a seasoned functional programmer will use modules instead of classes, avoid references, and avoid inheritance. Granted, module systems in ML and Haskell are much more powerful than that of VB.NET.

      You don't need OOP to solve problems. But, the choice of paradigm should be made given full awareness of the alternatives. While functional programmers are only too well acquainted with OOP, it sounds like these VB.NET developers don't even have a clue.
    28. Re:VB already gets the respect it deserves... by chaosite · · Score: 1

      I have four words for you. "on error resume next".

    29. Re:VB already gets the respect it deserves... by ClosedSource · · Score: 1

      Who died and left you in charge of figuring out who should or should not be a programmer?

    30. Re:VB already gets the respect it deserves... by Vexorian · · Score: 1

      Sorry, but I am not buying it, apart from some 'more human' syntax (which is not more than what pascal does) vb doesn't really solve the usual programming issues, if anything it just made the distribution harder since your programs required those darn runtime files that for strange reasons are never included in windows by default.

      --

      Copyright infringement is "piracy" in the same way DRM is "consumer rape"
    31. Re:VB already gets the respect it deserves... by ClosedSource · · Score: 2, Interesting

      "This is exactly the kind of reply I would expect from a VB developer or "non developer". By "quickly create applications to fulfil their requirements" you probably mean "create a horrible unmaintenable mess which not even the original author will touch, and which has is almost certainly going to be rewritten by a developer at some point in future".

      There are a number of interesting, unproven, and contradictory assumptions built-in to your statement:
      1) All VB code is a mess
      2) VB applications are successful enough to justify being maintained
      3) Despite the success of the application implemented in VB, it makes sense to rewrite it in another language
      4) The orginal developer isn't willing revise it, but somehow some other developer is willing to rewrite it.

      "Enabling non developers make production code is *NOT* a good thing, I think most people with some experience in the industry will agree with this."

      If by "non developers" you mean VB programmers, and given that a fairly large percentage of people in the industry with some experience are VB programmers than your statement is incorrect.

    32. Re:VB already gets the respect it deserves... by Anonymous Coward · · Score: 0

      It's good if you stay away from desktop apps. I've never met a Java GUI app whose UI performance I actually liked.

    33. Re:VB already gets the respect it deserves... by Anonymous Coward · · Score: 0

      MVC is a really poor abstraction that is never really implemented in a pure fashion. It's great though if you want to be able to modify your GUI to use a checkbox for scrolling.

    34. Re:VB already gets the respect it deserves... by killjoe · · Score: 2, Insightful

      The problem is that MS concentrates on the part of the software lifecycle that is the easiest and shortest. They make is easy to CREATE applications. Alas the rest of the software lifecycle (debugging, refactoring, maintenance, deployment etc) suffers horribly due to VB encouraging spaghetti code.

      In the long run VB is a hinderance and not a help. It's better to have a clean separation then a flashy IDE if you intent to keep your application alive for more then a few days.

      --
      evil is as evil does
    35. Re:VB already gets the respect it deserves... by marcosdumay · · Score: 1

      I've had the experience of teching introduction for programming on C++, that isn't nice. Java isn't good for it either, it's too complex and lacks an apropriate introduction for pointers (since it completely laks pointers). Personaly, I'd stick with Pascal.

      That said, a CS course can't be judged by the 1st year's curriculum. You may not get some concepts well now, but if it a good course, you'll just have to study a bit more later. Alternatively, you may be studing hard now, but that doesn't guarantees that it is worth studing. The only thing that would concern me is if you don't study pointers and recursive functions early, normaly at the 1st year, but sometimes at the 2dn will also do it. Both are hard concepts that will change how you view things (pointers will introduce you to low level programming, recursive functions to hight level), and are much less valuable if you learn them late.

    36. Re:VB already gets the respect it deserves... by Siberwulf · · Score: 1

      The other 10%, of course.

    37. Re:VB already gets the respect it deserves... by malkavian · · Score: 1

      Quite agree with the amateurs calling themselves professional (and IT is one of the few technical places people actually get away with it.. Just think if people could call themselves Doctors, or professional medics after doing a two week crash course on diseases of the hair!).

      As to the working program or non-working makefile, I'd expect both to work. If they didn't, I'd query the authors of both to see what the issue was, unless it was documented somewhere. I really hate pointing the finger and assigning blame; my first port of call would be to find out how to make it work reliably, and let the people doing the coding (who know a lot better than I do what they were thinking at the time) work it out for themselves with no loss of face. Which is basically the job I do now.

    38. Re:VB already gets the respect it deserves... by HiThere · · Score: 3, Interesting

      You never heard of Python, Ruby, or Smalltalk? That explains your problem.

      For years even though I swore at VB I didn't really hate it. Then I caught it in an arithmetic mistake. I, a human, caught a computer at an arithmetic mistake. Understand, I'm not talking about the program, I traced the error down to one specific statement in a program, placed print statements before and after it. VB made an arithmetic mistake. Then I started to wonder about all the larger numbers that I hadn't checked over the years.

      That was the last program that I ever wrote that used VB for arithmetic. The next one I used an external Eiffel program to do the arithmetic. The one after that I had it all happen in an Excel spreadsheet. Since them I've moved to Python and Ruby...and totally off of MS systems.

      I don't believe that anyone who is a decent programmer likes VB, though many use it due to coercions of various forms. (You mention interesting jobs.) Most people probably haven't noticed that it sometimes lies. (And maybe they've stopped doing that. This happened in MSAccess2000, around 2000.)

      No dialect of BASIC has ever been a decent programming language, throughout it's history. (Well, there are lots of versions that I haven't tried, so that's excessive. Some people said that Pick Basic was quite good.) It strongly encourages bad programming habits and discourages several good ones. There are dialects of BASIC in which it is actually impossible to write a decent program. Or a stable one (different group). This isn't to assert that it can't be very convenient. Especially in environments that are designed to encourage it's use.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    39. Re:VB already gets the respect it deserves... by ClosedSource · · Score: 1

      That can't be true, I didn't die.

    40. Re:VB already gets the respect it deserves... by weicco · · Score: 1

      Hello there. Just wanted to drop by and introduce myself: a VB and VB.NET programmer who understands interfaces, classes (methods, properties, fields), inheritance, reference and value types and how the whole model works and who uses classes in VB.NET.

      What I don't like in VB.NET is that Option Explicit is off by default and it brings whole bunch of problems. Implicit casting form string to integer and vice versa is horrible! I had this problem, which I was debugging for hours, that IDs, which was strings, implicitly converted to integers and back so that "01" -> 1 -> "1"

      Other thing I don't like is = operator which is assingment operator or compare operator depending on situation. I was really puzzled for a while when following code didn't work as expected, when the same code worked in C# perfectly. After this I learned to make a little context switch inside my brain when moving between other languages and VB :)

      foo = bar = baz

      --
      You don't know what you don't know.
    41. Re:VB already gets the respect it deserves... by ClosedSource · · Score: 1

      How do create a top level static class in Java?

    42. Re:VB already gets the respect it deserves... by hclyff · · Score: 2, Insightful
      I will say again and again that VB simply doesn't encourage good practice. Abominations like "On Error Resume Next" should have never seen day light. There are languages and frameworks better and worse in that, and VB is in my opinion one of the latter. That doesn't mean I think it's a really bad language, there aren't any, there are only bad 'tools for the job'. And in some people's hands any tool is bad for the job, shame for VB that it's pretty commonly tool of choice for them.

      here are a number of interesting, unproven, and contradictory assumptions built-in to your statement: 1) All VB code is a mess 2) VB applications are successful enough to justify being maintained 3) Despite the success of the application implemented in VB, it makes sense to rewrite it in another language 4) The orginal developer isn't willing revise it, but somehow some other developer is willing to rewrite it.
      Not quite. You should read my reply in the context of what I was replying to.
      1. I never said all code in VB is mess, I was refering to "quickly create applications to fulfil their requirements" which screams "hack it quickly, nevermind that nobody will be able to understand it or alter it later".
      2. That they often are. If something is somewhat functional but with an horrid codebase, is it successful? In bussiness setting, it is.
      3. Not rewritten because of being unsuccessful, rewritten because of being unmaintanable. What good is working application if nobody is going to touch it with 3 feet pole to add even the simplest feature?
      4. How is that contradictory with anything I said?
      If by "non developers" you mean VB programmers, and given that a fairly large percentage of people in the industry with some experience are VB programmers than your statement is incorrect.
      How much percent of actual professional VB developers is out there? (that is what I meant by "in the industry")
    43. Re:VB already gets the respect it deserves... by ClosedSource · · Score: 1
      I have yet to meet a Lisp or Ruby developer who:
      • Understands what an interface is
      • Understands what a class method is
      • Understands inheritance
      • Really understands the difference between reference and value types
      • Uses classes instead of modules

      Of course, it might have something to do with the fact that I've never met any Lisp or Ruby developer. Who you've met and who I've met doesn't really say anything significant about the value of a particular programming language.
    44. Re:VB already gets the respect it deserves... by S.O.B. · · Score: 3, Insightful
      And yet it performs a useful function for the business... If you don't like it, you could always move to a different job or business.


      Nice bit of flamebait. Moving right along...

      Or.

      Perhaps you might want to extend your remit to advocating the technologies you would choose, to the business management. Perhaps you might even want to create a development environment for personnel to produce adhoc applications in the technologies you prefer. Or shock, horror, you could even provide that service within the IT department and actively go looking for opportunities to improve productivity.


      My company does all of that. We have a list of technologies that are approved, in containment and being retired. The department I work for is the likely place for these types of requests to be handled and we have a triage process that takes any request that comes in to well publicized email address and discusses it with the client to determine their needs and estimate the effort. If the client wants to go ahead it is prioritized and put in the schedule. Most times when they realize how much thought and effort it really takes to do it right they let us do it for them.

      Even with all that there's always a guy (surprisingly never a woman) who read VB for dummies over the weekend and now thinks he knows as much as the entire IT department of a multi-billion dollar company. Unfortunately, what he doesn't realize is that writing a program is only a small piece of the problem. Once it's there you have to support and maintain it and that takes time. Then people begin asking for enhancements that he starts bolting on anywhere he can but it's getting harder and harder because he has no concept of design. Now his boss is telling him that he's spending too much time on it and it's not what he's getting paid for anyway. Then it gets dumped on IT and now we have to maintain it.

      And anyone who says why don't you tell them that they'll have to keep maintaining it themselves or pay to have us migrate it to an approved technology has never worked in a large shop where politics often wins out over reality.

      Besides, IT areas do a lot more than write programs. Coding is maybe 15-25% of the actual effort. There is analysis, design, integration (with other internal/external apps), regression testing and deployment to name a few. That's not to mention on-call support, enhancements and regulatory compliance not the least of which is SOX.

      I don't have a problem with trained VB developers it's just that the simplicity of the tool and Microsoft's marketing give untrained people a false sense of ability.
      --
      Some of what I say is fact, some is conjecture, the rest I'm just blowing out my ass...you guess.
    45. Re:VB already gets the respect it deserves... by Siberwulf · · Score: 1

      Welcome to the 90%?

    46. Re:VB already gets the respect it deserves... by Flodis · · Score: 1

      Good example. I've used the analogy "just because you got a chemistry box for christmas doesn't mean you can start making medical drugs and try them on people". Only said it once, and I felt a bit bad about it afterwards. On the other hand, the guy was just speeding ahead and coding himself into the most amazing corners time and again, so I think he needed to hear it... Sigh.

      However, regarding the question, I think you may have missed my point.

      Taking the guy who is unable to produce even the makefile for a C/C++ program, while being totally able to churn out working code in VB... Which environment do you think he'll choose to work with?
      I'm guessing 'VB', and that this explains why so many amateurs code in VB.

      The question you answered was - somewhat paraphrased - "If you have a choice between a non-working makefile or a working VB program written by the same guy, which do you prefer?" You can't expect both to work. If both worked, the doofus might attempt to do some C/C++ hacking, but all the evidence suggests the amateurs mainly end up in VB.

      Anyway, to answer it myself; I'd say I prefer taking over the makefile. Firstly, there are too many things that can make program code unmaintainable. Secondly, it's a lot easier to convince my manager that doofus should be fired, since it is evident the makefile doesn't work. Trusting managers to be able to tell good code from bad when both seem to work is generally _not_ possible.

    47. Re:VB already gets the respect it deserves... by HvitRavn · · Score: 1

      MVC isn't an abstraction (abstraction of what, in any case?), it's a compound pattern. As for purity - in that respect it sure as hell beats any other compound or architectural pattern I've had to struggle with previously (which is quite a few).

    48. Re:VB already gets the respect it deserves... by knewter · · Score: 1

      I think it's funny - it was just a question. As it turns out the answer is you can't, and yes there are loads of projects that that makes an enormous difference on. I think it's absurd that you can't do it in VB and they call it OO. But anyway, it was just a question - I was hoping someone would come back and say 'you fool, you've been able to do that since .net 2.0' or something like that.

      --
      -knewter
    49. Re:VB already gets the respect it deserves... by ClosedSource · · Score: 1

      No, thanks I'll stay with the 10% and not join you and the others.

    50. Re:VB already gets the respect it deserves... by knewter · · Score: 1

      (Java sucks) !=> (VB doesn't)

      Anyway, long live Ruby :)

      --
      -knewter
    51. Re:VB already gets the respect it deserves... by jericho4.0 · · Score: 1

      Just don't drink the kool-aid and think it's the 'best' language. They are only tools. Oh, and get some exposure to pointers and registers and hardware. I've met many Java coders who are crippled by a lack of understanding of the hardware.

      --
      "A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
    52. Re:VB already gets the respect it deserves... by Andrew+Kismet · · Score: 1

      by "completely lacks pointers" I assume you mean "everything is a pointer". >_>

    53. Re:VB already gets the respect it deserves... by ClosedSource · · Score: 1

      This is where I would mention missing features in Ruby (if I knew anything about Ruby). The point I was trying to make is that the lack of a particular language feature (and they're all missing something) doesn't mean that the language sucks.

      In the case of VB, some developers are threatened by the marketplace reality that people can create successful applications without using politically-correct languages or following every academic rule. This attitude is most common with new grads, but most outgrow it eventually.

    54. Re:VB already gets the respect it deserves... by dramenbejs · · Score: 0

      Superb post, I have absolutely similar experiences.
      Slashdot modders are a bunch idiots in average, if they marked your post Flamebait.

      Set your preferences so that flamebaits have a +3 bonus (I do have it so).
      Setting +3 to offtopic helps too (some modders don't even recognise a logical link to TFA).

      That way, inteligent people, which don't fear to think criticaly, will form a refreshing place of enlightenment inside slashdot discussions.

      To /. modders: Mod me flamebait, you fucker! VB sucks!

    55. Re:VB already gets the respect it deserves... by malkavian · · Score: 1

      Gotcha. Now I get what you were asking for.. Definitely the non-working makefile. At least that way you can get the guy the training he needs to (over time) achieve what he may be capable of some day, and in the meantime, get assigned to the roles he's capable of.

      Not everyone's capable of great things to start off with, and certainly junior positions, I don't expect great things from. What I do expect is for them to learn, make mistakes, fix mistakes, and learn from that too. And someday, with the help of the seniors, end up being experienced seniors themselves, and keep the cycle going.
      But that's getting into the 'apprenticeship' system (which I'm a firm fan of), which is another story entirely.

      Nice quote on the Chemistry set! I work in a hospital, and there are one or two people round here that could certainly do with hearing that particular one..

    56. Re:VB already gets the respect it deserves... by Flodis · · Score: 1

      It is evident you are a nicer person than I am - at least you have more patience for people than I do. :-)

      Good luck. (no irony intended)

    57. Re:VB already gets the respect it deserves... by trianglman · · Score: 1

      From personal experience (I still work in it regularly) I have to say that Pick Basic is no better than any other form of BASIC. It encourages bad code and bad design.

      --
      Clones are people two.
    58. Re:VB already gets the respect it deserves... by knewter · · Score: 1

      Alright, some context. I was a VB developer for three years, developed big(ish) apps in it, we rewrote a state department's main application in it and C#, etc. I actually hate VB because it lacks a coherent structure. I'm an MCP (was on the MCSD track before I ran kicking and screaming from the building).

      So the reasons I like Ruby (because no, the gripe was not a missing feature. The gripe was a failing abstraction. If OO can't be OO, then OO is a stupid idea. OO.) First, off the fact that it is pretty much (lisp - macros) means I like it quite a bit. For lofty mathematical reasons. Any Lisp with a grokkable syntax is a-ok with me. And libraries.

      But I'm not claiming Ruby's the awesome. I was responding to a guy saying that VB deserved respect, and I was asserting that it did not, in fact. Sure you can do lots of stuff with it, but whatever. I'm not interested in how much stuff someone can do in something - that's a pragmatic approach. But I should only be concerned with my own actions. Using VB in my own life would be knowingly limiting myself. So I cannot. Therefore VB sucks.

      --
      -knewter
    59. Re:VB already gets the respect it deserves... by marcosdumay · · Score: 1

      I meant "there is no pointer arithimetics, and you can't deal directly with them". I tought it was pretty clear; of course every language have poiters by your definition, so it doesn't even make sense to talk about it.

    60. Re:VB already gets the respect it deserves... by ClosedSource · · Score: 1

      "Sure you can do lots of stuff with it, but whatever. I'm not interested in how much stuff someone can do in something - that's a pragmatic approach. But I should only be concerned with my own actions. Using VB in my own life would be knowingly limiting myself. So I cannot. Therefore VB sucks."

      It's fine if language X sucks for you, but if you expect to influence anybody else's opinion, you can't ignore pragmatics.

    61. Re:VB already gets the respect it deserves... by Antity-H · · Score: 1

      I soooo used to think like you. But I use eclipse and azureus every day and I have to say that these apps fare pretty well against my UI expectations. I hope QT4 gets optimised quickly, then for ruby bindings to be released, that could make for cool apps.

    62. Re:VB already gets the respect it deserves... by knewter · · Score: 1

      I think for the same reasons it sucks for most people that code in it today. I think it's a capable language. I also think it's a terrible language. And who was expecting anything more than my opinion? Did I have a standard definition of suckitude to connect my argument to or something? I've got some experience though, and want to dissuade others from thinking that it's a good language to spend time learning. I think it'll help the world if I'm able.

      --
      -knewter
    63. Re:VB already gets the respect it deserves... by jbolden · · Score: 1

      Because that wasn't the intention. VB (VB 3-6 not .NET) apps were meant to be used for short term and limited goals. If a program is going to be used for an extended period of time and modified it shouldn't have been written in VB. Clarity of concept requires organization of concept. VB was designed to work well for an iterative process of discovering the organization, that is VB is designed to work well when the programmer is unsure what the program is supposed to do.

      I don't see anything wrong with a language doing exactly what it was supposed to do.

    64. Re:VB already gets the respect it deserves... by jbolden · · Score: 1

      te a horrible unmaintenable mess which not even the original author will touch, and which has is almost certainly going to be rewritten by a developer at some point in future

      That would actually be a perfect end for a VB program. After the iterative process of requirements gathering is done via a VB rapid development methodology it wouldn't be at all unreasonable to then come in and rewrite it. The rewriters now have:

      1) A fully working prototype
      2) Business rules and logic spelled out and worked through
      3) A GUI interface agreed to with the customer
      4) Clear limitations of the above model understood.

      So what exactly went wrong?

    65. Re:VB already gets the respect it deserves... by jbolden · · Score: 1

      How much percent of actual professional VB developers is out there?

      In 2007 a very low number. In 1995 a much higher number. In 1995 there was for all practical purposes no Java. GUIs were very platform specific and very complex requiring a great deal of understanding of underlying OS concepts. C/C++ required programmers to work as such a low level that business rules were obscured, hat is programmers were something like 15x as productive in VB as they were in the C++ GUI languages.

      Corporate American had definitely moved towards the Windows desktop without thinking through a strategy for writing a huge quantity of client programs quickly enough that they wouldn't need a major round of mainframe / mini computer upgrades. In that world VB, Lotus/Excel, Foxpro/Access/Paradox programming comprised something like 70% of all development.

    66. Re:VB already gets the respect it deserves... by jbolden · · Score: 1

      Who cares whether its a technology you would have chosen? What you have with the VB program is:

      1) A fully working prototype
      2) Business rules and logic spelled out and worked through
      3) A GUI interface agreed to with the customer
      4) Clear limitations of the above model understood.
      5) An understand of how this app is going to mature overtime

      Why doesn't that justify a rewrite at this point?

    67. Re:VB already gets the respect it deserves... by jbolden · · Score: 1

      I think when they say VB is OO they mean it the way people talk about Scheme being OO (that is it supports object design methods, that is data structures can have functions associated with them. I don't think they mean its OO in the sense that it uses the Java/Smalltalk paradigm of syntax. Further the LINQ direction seems to be to move more towards the Lambda family of languages; which given C#'s move in the opposite direction makes sense. Why should Microsoft only support one programming paradigm?

    68. Re:VB already gets the respect it deserves... by Andrew+Kismet · · Score: 1

      Sorry, I was tired and pedantic ^^ thanks for the correction though.
      Yeah, pointer arithmetic I'll either study next year, or in my spare time if this course is that poor.

    69. Re:VB already gets the respect it deserves... by jbolden · · Score: 1

      If I were to write something like:

      I have met Java developers who do not understand what a pointer is. I have yet to meet a Java developer who:
      Understands what a monadic transform is
      Understands can read assembly
      Understands higher order programming
      Really understands the difference between class types and classes
      Uses DSL's instead of classes

      Besides being false what would that prove? People who know only one language tend not to know the paradigms from different languages.

    70. Re:VB already gets the respect it deserves... by jbolden · · Score: 1

      VB.Net is getting lambda expressions. Its in the compiler the discussion now is syntax and closure handling. As for module systems I'm not sure they are powerful in Haskell than VB.Net could you explain?

    71. Re:VB already gets the respect it deserves... by ClosedSource · · Score: 1

      You seem to be bouncing back and forth between saying "it's just my opinion" and "I think it'll help the world". If you make an argument and somebody challenges that argument you shouldn't hide behind the fact that it's just an opinion.

    72. Re:VB already gets the respect it deserves... by knewter · · Score: 1

      Yeah, except I have better things to do than argue about how I might not yet have articulated my deeply held belief yet. It goes something like this, see if you can keep up:

      1) I have an opinion. I'm of an extremely strong mind that it's right, and I have gobs of experience with the language.
      2) I'd like to get that opinion out there because agreeing with me will save the world, solve world hunger, get rid of toejam ALTOGETHER, etc. VB poisons minds, as far as I can tell.
      3) If no one else comes down on my side of the fence, then fine. The world's worse off on the whole, but I'll continue getting demonstrably better at what I do in solitude. Screw you guys, I'll try to hold off on the advice and let you waste four years in one of those shops like me, right?

      Anyway, the point is every moment of life isn't supposed to be a challenge-response scenario. I'm right, and fuck all if you can't catch it because I'm not your daddy :)

      --
      -knewter
    73. Re:VB already gets the respect it deserves... by ClosedSource · · Score: 0

      "Yeah, except I have better things to do than argue about how I might not yet have articulated my deeply held belief yet."

      Apparently not.

    74. Re:VB already gets the respect it deserves... by NittanyTuring · · Score: 1

      Haskell has a pretty standard "module" system. However, Haskell's "class" system is really an advanced module system. It's not OOP because there are no objects or instances. It's an expressive way to express generic, parametrized modules. It is similar in many ways to the module system of Standard ML. If you want to see a really powerful, unique paradigm.. check out the Standard ML module system. I guarantee you it would bring you many new insights into programming.

      But, who cares if VB.Net is getting lambda expressions? I think you missed my point. It was that functional programmers are too smart to use OOP, and VB.Net programmers are too stupid to use it.

    75. Re:VB already gets the respect it deserves... by knewter · · Score: 1

      touché

      --
      -knewter
    76. Re:VB already gets the respect it deserves... by try_anything · · Score: 1
      MVC is a really poor abstraction that is never really implemented in a pure fashion.

      One of the nice things about it is that you don't have to go all the way. The people who introduced to MVC did so quite enthusiastically and in great detail, yet working together I don't think we ever produced a pure MVC design. Our understanding of MVC just illuminated the design space and served as an excellent starting point.

      I saw an article floating around awhile back criticizing MVC and offering alternative GUI patterns, many of which were MVC with one or more restrictions relaxed. Those alternatives are actually what most people end up coding -- full-blown MVC is usually overkill, a starting point from which a less elaborate design can be created.

    77. Re:VB already gets the respect it deserves... by megazork · · Score: 1

      I think the language is reasonably pedagogically sound and you'll be able to pick up many other languages fairly quickly once you know Java really well. At your level, I wouldn't worry about languages too much. Being a CS major, the language you program in is fairly trivial. At Stanford, after a certain level, most courses didn't even cover how to program in a particular language; it's just assumed that you'll be able to pick it up as you go. I once took a computer security class where we were told to go design exploits for certain unix programs. As part of the assignment we had to figure out x86 machine code.

    78. Re:VB already gets the respect it deserves... by shutdown+-p+now · · Score: 1
      Hrm. Well, I seem to remember an article at Joel Spolsky's Site about why he thought VB was a decent tool in ways. Remember, it has no memory management; I've done memory management, and I never want to do it again unless rains of fish will occur.
      And here you go, proving GP's point. See, VB not only has memory management, it is something you have to be familiar with as well if you don't want to leak memory. VB does reference counting. The problem with that is that it will not do what you want (or at least what you think you want) for structures with circular references - and these appear much more often than many people think (trees which can be traversed both ways, top-to-bottom as well as bottom-to-top, are particularly common in OO, and are such circular structures). Some languages (e.g. Python) provide a garbage collector to resolve cycles; VB does not. So if you ever coded such a structure in VB, and did not take specific measures to handle it, you've leaked memory.
    79. Re:VB already gets the respect it deserves... by shutdown+-p+now · · Score: 1
      For years even though I swore at VB I didn't really hate it. Then I caught it in an arithmetic mistake. I, a human, caught a computer at an arithmetic mistake. Understand, I'm not talking about the program, I traced the error down to one specific statement in a program, placed print statements before and after it. VB made an arithmetic mistake. Then I started to wonder about all the larger numbers that I hadn't checked over the years.
      Don't get me wrong, but I'm somewhat skeptical... could you please give more details on the nature of the problem? Wasn't it by chance related to how rounding in VB works? (which is not what you'd normally expect, but which is properly documented)
    80. Re:VB already gets the respect it deserves... by MrAnnoyanceToYou · · Score: 1

      Anyone that uses VB for much more than a GUI with a little data interface is clearly off their rocker. I'd only do such a thing under extreme duress and an exceptionally large pile of money. And I'm absolutely certain that I'd end up with some monstrosity I never wanted to see again. VB is the right tool for certain extremely limited jobs. Not much more, can't be much less. But it's not completely useless, otherwise noone would use it. It comes bundled and people cobble their own manky crap together out of it inbetween having two people trying to communicate and a department having enough budget to buy a third party tool. It's easy to pick up and learn, and it comes built right on in.

      Those are all the advantages. Whatever its problems as a coding language, it's still there and it is still going to be there long after anything 99.999% of the coders on the planet write bites the dust. This is not a quality, this is a fact. And getting used to it is a sad, lonely, disheartening road. Paved with easy jobs that pay a lot better than inbound phone support.

    81. Re:VB already gets the respect it deserves... by HiThere · · Score: 1

      I was adding two integer variables of single digit value. That's how I happened to become suspicious. Normally I wouldn't have noticed an arithmetic error, or have attributed it to "something about rounding that I don't understand".

      I'm fairly certain that I could have corrected that particular problem. (In fact I did.) I can't give many details because:
      1) it was about a decade ago and
      2) I couldn't reproduce it intentionally.

      I'm reporting my personal experience. MSBasic is the only language that I've ever had do something like that to me. Not Lisp, not Fortran, not Algol, not Compass, not Snobol, not FAP, not Python, not Ruby, not Smalltalk, not Java, not Ada, ... (well, you can see I have no loyalty to any particular language). For each one I could talk for longer than anyone would want to listen about it's defects. None of them lied to me this way. (OK, admittedly in the very first class I took in programming the computer would occasionally lie in this way...but a. that was because of flakey vacuum tubes and b. it didn't make the same error if you resubmitted the job.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  2. Performance, anyone? by Lucas.Langa · · Score: 2, Insightful

    Yeah, it's cool to virtualize, introduce dialects, interpret, etc. etc. Now, for the first time ever, we have cheap mainstream computer hardware that's capable of handling all these ideas in an acceptable way. But, isn't it a huge waste of resources? What about performance?

    I mean, take Lisp and its performance. Compare it to Ruby's. Matz said himself that Ruby started as a kind of Lisp reconsideration. And you call this progress?

    The thing is that you can implement a dynamic language that isn't painfully slow. Take Lua for instance. Eh, if only it had Unicode support.

    --
    Build a tool even an idiot can use and only an idiot will want to use it. -S.O.B.
    1. Re:Performance, anyone? by fatphil · · Score: 2, Funny

      This reminds me of Greenspun's Tenth Rule:

      Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.

      As long as it can send mail, that's the only feature that matters (and whose rule is that?).

      --
      Also FatPhil on SoylentNews, id 863
    2. Re:Performance, anyone? by suv4x4 · · Score: 1

      Yeah, it's cool to virtualize, introduce dialects, interpret, etc. etc. Now, for the first time ever, we have cheap mainstream computer hardware that's capable of handling all these ideas in an acceptable way. But, isn't it a huge waste of resources? What about performance?

      Ruby manages to be slower than PHP, and sometimes considerably, which is a true achievement (I can say, as a PHP developer, unfortunately).

      Also from friends who had played more with Ruby and with Rails, Ruby's ability to create dialects makes developers spend too much time inventing new "domain specifics" syntaxes and new people need to have deeper understanding of the framework to get their job done.

      In the end, sometimes less flexibility and more standardization is better. In C & C-derviative languages you'll never wonder if what you're looking at is a function or not.

    3. Re:Performance, anyone? by sinserve · · Score: 1

      > As long as it can send mail, that's the only feature that matters (and whose rule is that?).

      JZW.

      Law of Software Development: "Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can." -- http://www.jwz.org/hacks/

    4. Re:Performance, anyone? by Lucas.Langa · · Score: 1
      In the end, sometimes less flexibility and more standardization is better. In C & C-derviative languages you'll never wonder if what you're looking at is a function or not.

      Your point is apt but your example is not quite wellchosen. I mean, in C with its preprocessor macros, typedefs, etc. you could easily define mini-languages that are very difficult to understand for someone not familiar with the code.

      --
      Build a tool even an idiot can use and only an idiot will want to use it. -S.O.B.
    5. Re:Performance, anyone? by marcosdumay · · Score: 2, Funny

      The question is: Is half lisp better or worse than a full one?

    6. Re:Performance, anyone? by Lucas.Langa · · Score: 4, Interesting

      As funny as your comment is, it made me wonder... There is a very loud pro-Lisp community that tells everyone who is not using Lisp that they should since it solves most of the problems they have in the first place. OK, fair enough. But I have that strange feeling that assuming the developers to be usually very smart and very lazy, we would see them all convert to Lisp if it really was the ultimate answer [1].

      And what makes me think that Lisp was and still is widely ignored? There are a couple of points here but the most important is: we don't really see a large, consistent standard library for Lisp. So we could easily turn the Greenspun's 10th Rule backwards to say: any sufficiently complicated Common Lisp program contains an ad hoc, informally specified, bug ridden, slow implementation of half of Java's standard library.

      So, where's the catch? Why isn't Lisp popular if it's so 1337?


      [1] But we know it's 42.

      --
      Build a tool even an idiot can use and only an idiot will want to use it. -S.O.B.
    7. Re:Performance, anyone? by Wolfbone · · Score: 4, Informative

      "I mean, take Lisp and its performance. Compare it to Ruby's."

      Which Lisp? One which (as most implementations of Common Lisp do these days) appropriately and reasonably gets compared to the output of a C compiler?:

      http://www.lrde.epita.fr/cgi-bin/twiki/view/Public ations/200606-IMECS

      I wouldn't have thought that would be a very fair comparison to make for Ruby.

    8. Re:Performance, anyone? by Lucas.Langa · · Score: 1
      Which Lisp? One which (as most implementations of Common Lisp do these days) appropriately and reasonably gets compared to the output of a C compiler?

      Well, that's precisely what I was trying to point out. If I build a new and presumably better (in my own opinion) programming language starting off with Lisp, and my implementation turns out to be less powerful and slower than an average CL implementation, is that progress?

      --
      Build a tool even an idiot can use and only an idiot will want to use it. -S.O.B.
    9. Re:Performance, anyone? by ravenlock · · Score: 5, Insightful
      If I build a new and presumably better (in my own opinion) programming language starting off with Lisp, and my implementation turns out to be less powerful and slower than an average CL implementation, is that progress?

      It is if it helps introduce the concepts behind Lisp to a lot of people who never would have dared to venture into Lisp otherwise. Ruby was the first language with functional constructs I tried (very much due to the excitement around Rails). Now I'm reading up on Lambda Calculus and learning Haskell, and I'm not at all sure it would have happened, were it not for Ruby.

    10. Re:Performance, anyone? by Anonymous Coward · · Score: 0

      I don't really know, but I have a guess. I'm not great at math. I'm not awful at it either, but not great. Just under 80th percentile if standardised tests are to be believed, which is an impressive score for a liberal arts guy but won't get you too far in the math department, which computer science is properly a subset of. I suspect, based on some experience, that many developers are in the same boat.

      I can handle arithematic, geometry, algebra, and even statistics just fine, but every time I've attempted to grok lambda calculus I've gotten nothing but a headache. Which is a real shame, because that's some intensely useful math there, but the fact remains, I don't get it. Lisp, I have gathered, is intimately related to lambda calculus, and the headaches I get when I try to grok it properly agree.

      Now I firmly believe in the human ability to learn, but there are matters of time, and matters of pedagogy. The resources I've found to teach me these things appear to be sorely lacking in the latter, and I have a very finite amount of the former as well. Periodically I find a new (to me, at least) resource and give it a try, but when the migraine sets in I move on...

    11. Re:Performance, anyone? by TheRaven64 · · Score: 2, Interesting

      I mean, take Lisp and its performance. Compare it to Ruby's. Matz said himself that Ruby started as a kind of Lisp reconsideration. And you call this progress? Right. Common Lisp is very fast; on an architecture that's not register-starved the Steel Bank compiler can produce code that is faster than C++ running the same algorithms, and Lisp is a lot more flexible. While I like the Lisp semantics, I find the syntax a little, uh, minimalist, and I prefer Smalltalk[1], which has a similar amount of flexibility. Smalltalk running in the Squeak VM is fast enough to run video CODECs written in Smalltalk on a relatively modern laptop, and is faster than Ruby.

      I still don't seem what advantage Ruby has over Lisp or Smalltalk; it is no more expressive, and current implementations generate slower code.


      [1] A List programmer will tell you Smalltalk is a great language, because you can implement a Lisp interpreter in a few lines of Smalltalk. A Smalltalk programmer will tell you Lisp is a great language, because you can implement a Smalltalk interpreter in a few lines of Lisp...

      --
      I am TheRaven on Soylent News
    12. Re:Performance, anyone? by Nicolay77 · · Score: 1

      Ruby is even slower than Phyton.

      It's simply that a lot of though has been put into those Lisp compilers as they used to run in very small computers compared with the ones we have.

      --
      We are Turing O-Machines. The Oracle is out there.
    13. Re:Performance, anyone? by bhima · · Score: 2, Interesting

      I'll hazard a few guesses:

      1: It is popular among people who are solving problems LISP is well suited for.
      2: There are other languages that are more suited for what most developers do.
      3: There are other languages that are more successfully marketed.

      I've earned more money in less time using COBOL than any other language but you don't hear me telling kids to pick it up.
      Nor do you see me selling COBOL for new projects.

      I don't think all of this "what language is 'leet" talk is productive or illuminating. You have a problem, so you use the best tool you can find and learn how to use to solve that problem. If anything I find LISP excels at allowing me to solve certain problems in very interesting ways. Ways that perhaps using the currently popular language wouldn't have allowed.

      --
      Nothing in the world is more dangerous than sincere ignorance and conscientious stupidity.
    14. Re:Performance, anyone? by tacocat · · Score: 2, Interesting

      True Dat. Between Perl, Python and Ruby. Ruby is the slowest by far. And be careful how you write your code. Sometimes attaching method.method.method is about the worse way you can go, even though they claim it is the Ruby Way. Bah! I'll take perl. At least it has docs.

    15. Re:Performance, anyone? by billcopc · · Score: 1

      If you assume that developers are usually very smart and very lazy, then I want a job where you work.. in real life, developers are usually very dumb and very hard-working.. you know, like a a miner. They will use something anal like Java or C++.Net, spend 80% of the development schedule reinventing features that already exist elsewhere, then bring in consultants to write the actual application logic using the resultant cesspool of code that kind of looks like a Java-based Visual Basic emulator :P

      Many years ago I had a wonderful job where the government would pay me to "administer" one such shitpile. The multi-million dollar application's sole purpose was to manage Human Resources, essentially a big old list of employees with their job description and vacation balances; the kind of thing the average non-programmer could cobble together in MS Access in an evening. Well one version of the client would obviously crash after 4-5 queries, and corrupted half the updates. I fed the bug reports back up to the devs and a week later they had a new build ready for me. Well this new one still had the same bugs, but they made numerous cosmetic modifications, like rounded corners and custom-drawn title bars, and let's not forget the sexy dropdown date pickers that defaulted to Jan 1st 2011. What's even better is that this was all done is VB 6, so all these cute "improvements" required 3rd party DLL/OCX hacks.

      My favorite though, is how they designed the server side. It used yet more DLL plugins, that were again build in VB 6. The installation procedure involved about 2 hours of dicking around in Windows 2000, changing IIS settings and manually updating database schemas, and of course redoing the ActiveX registration because the Setup program would usually bug out on about half of them.

      The point of all this is that most developers are paid by the hour, so doing their work quickly and efficiently is actually detrimental to their bottom line. The people I had to deal with were just making the process as slow and error-prone as humanly possible in order to milk the government for years to come. I no longer work there, partly because all I ever did was bitch and whine about how the developers sucked, to the point where I had built a mostly working app of my own, during the other 36 hours of the work week while I waited for new test builds. Needless to say, I seriously endangered some people's job security, not to mention made an ass of many higher staffed sheep for throwing so much money down that black hole.

      What irks me the most is that if you go to a mechanic, and he pulls this kind of shit on you, it's fraud and you can theoretically sue the greasy bastard for "fixing" things that weren't broke. When software developers do it, it's business as usual and nobody gives a damn, they just dig deeper into other people's budgets and pay the poor little MCSE's more money to fix the non-problems. The client has to pay more money for less competent developers ? What the fuck is that shit?!

      --
      -Billco, Fnarg.com
    16. Re:Performance, anyone? by Millenniumman · · Score: 1

      I still don't seem what advantage Ruby has over Lisp or Smalltalk; it is no more expressive, and current implementations generate slower code. It has one main implementation, with those libraries. Maybe it's slow, but at least it's universal.
      --
      Stupidity is like nuclear power, it can be used for good or evil. And you don't want to get any on you.
    17. Re:Performance, anyone? by The_Wilschon · · Score: 1

      A decent implementation of common lisp tends to perform about as well or better than optimized compiled C. And most of the big implementations are decent in that regard.

      --
      SIGSEGV caught, terminating

      wait... not that kind of sig.
    18. Re:Performance, anyone? by nuntius · · Score: 1

      I mean, take Lisp and its performance. Compare it to Ruby's. Matz said himself that Ruby started as a kind of Lisp reconsideration. And you call this progress? I'm not sure what you meant by that, but many Common Lisp implementations compile and run equivalent in speed to C/C++.


      Lisp contains a superset of the features in Ruby, can be modified to provide the Ruby syntax, and compiles to run faster than Ruby... Why would we want to rewrite a subset of Lisp in Ruby???

      Eh, if only it had Unicode support. Why wait? Many Lisps do.
    19. Re:Performance, anyone? by Lucas.Langa · · Score: 1
      I'm not sure what you meant by that, but many Common Lisp implementations compile and run equivalent in speed to C/C++.

      As I already mentioned elsewhere, I meant exactly what you've written. If Lisp is as performant as C then implementing a subset with a different grammar that works substantially slower seems strange and does not seem to be progressive.

      But some of the other readers pointed out that it can be useful even if only to indirectly popularize Lisp in the end. But I'd rather spend the time and energy by implementing and maintaining a wider standard library for Lisp and do more evangelization.

      --
      Build a tool even an idiot can use and only an idiot will want to use it. -S.O.B.
    20. Re:Performance, anyone? by NoTheory · · Score: 1
      Ruby manages to be slower than PHP, and sometimes considerably, which is a true achievement (I can say, as a PHP developer, unfortunately).
      What are you trying to do with Ruby that's making it so much slower than PHP? The great computer language shoot out seems to indicate it's very close (i.e. PHP only performs >5x better than ruby on one task), although ruby's memory usage seems to be regularly better.
      --
      There are lives at stake here!
    21. Re:Performance, anyone? by pivo · · Score: 1

      I agree with the marketing point, but disagree with points 1 & 2. Lisp is a general purpose language that I find to be well suited to a large variety of problems. Lisp has an unfortunate association with AI from the 1980s, but it is not specifically an AI language, it's just a language that makes hard problems like AI possible.

      I think the real reason Lisp isn't more popular is that most developers don't want to spend the time to learn to write code that uses parenthesis instead of curly braces and semicolons. That's too bad, because Lisp is really a mind-opening language.

      The only thing I guess I wouldn't use Lisp for is low level code, like drivers or other "OS level" stuff, because *nix is so heavily C oriented.

    22. Re:Performance, anyone? by suv4x4 · · Score: 1

      What are you trying to do with Ruby that's making it so much slower than PHP? The great computer language shoot out seems to indicate it's very close (i.e. PHP only performs >5x better than ruby on one task), although ruby's memory usage seems to be regularly better.

      Single when should a language be >5x better to be considered "faster"? With the exception of the new meteour test (which I saw the PHP code for is poor and soon will be updated I guess), PHP is on average 2-3 times faster than Ruby.

    23. Re:Performance, anyone? by pivo · · Score: 3, Informative

      I suggest you forget about Lambda calculus and learn Lisp just like you'd learn any other programming language. Peter Seibel has made his excellent, non-migraine-inducing book "Practical Common Lisp" available for free on like at http://www.gigamonkeys.com/book/ He leads you through building a streaming MP3 server in Lisp, which is quite fun.

    24. Re:Performance, anyone? by newt0311 · · Score: 1

      the same reason python isn't wildly popular in corporate environments. The managers are scared of the risks it brings to the table since it isnt standard tech.

    25. Re:Performance, anyone? by Anonymous Coward · · Score: 0

      I have occasionally thought about learning Lisp, but a great turnoff for me is the fact that most Lisp evangelists are always so smug, condencending and generally arrogant. People like Paul Graham claim that you should design languages for the best programmers, not for the average ones. He and others then go on to say stuff like "Lisp is the language of the Gods", and "I could make Java in Lisp in about a week, and it would be faster, more powerful and less buggy", or "A good programmer like me using Lisp is about a thousand more times productive than a group of programmers using a lesser language".

      Which makes me wonder: Why don't you dominate the computing world by now? Why isn't everthing written i Lisp these days? Your language have been around for decades. Your God can't be omnipotent, omnisciencient, benevolent and still not be responsible for evil things in the world.

      Admit that your language makes tradeoffs like all others, or shut up.

      As for me, I think I'd rather learn ML, Erlang or any another functional language if I ever get the time.

    26. Re:Performance, anyone? by YGingras · · Score: 1

      Saying "take lisp" means nothing. Lisp is a family of languages. Some dialects have fast implementations and some don't. Common Lisp, as an example, have both really fast implementations (CMUCL and SBCL) and kind of slow though extremely portable ones (Clisp and a few others). You have the same duality with Scheme (another Lisp dialect). Gambit C is pretty darn fast while Guile is slower but easier to embed into another program. Don't take my word for it, check the existing benchmarks. Keep in mind that those are trivial tasks and don't take into account the development cycle of a program or the easy of coding in a given language. You'll notice that SBCL has nothing to envy to Ruby performance wise. The annotated Common Lisp code is ugly but the idea is that you can easily code your app, debug it and then, profile it and add annotations in the time critical parts. Contrast this with using swig to recode parts of your app in C like you would do with other dynamic languages, including Ruby, and you have a net win.

    27. Re:Performance, anyone? by Lucas.Langa · · Score: 1

      Nope. Lisp has been there before all current standards (and many outdated). Lisp has been there before C even existed. Let alone C++, Java and LAMP. What you're trying to say is that Lisp is not popular because it is not popular.

      --
      Build a tool even an idiot can use and only an idiot will want to use it. -S.O.B.
    28. Re:Performance, anyone? by NoOneInParticular · · Score: 1
      Actually, Greenspun was only partly right, the true gospel should read:

      Any sufficiently complicated C, Fortran or Lisp program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.

    29. Re:Performance, anyone? by Lucas.Langa · · Score: 1

      I know, I know... I guess I should be more careful with words (I'm not a native speaker).

      Cheers.

      --
      Build a tool even an idiot can use and only an idiot will want to use it. -S.O.B.
    30. Re:Performance, anyone? by Lucas.Langa · · Score: 1

      Actually the first link should have been this but I guess you get what I mean anyway.

      --
      Build a tool even an idiot can use and only an idiot will want to use it. -S.O.B.
    31. Re:Performance, anyone? by imbaczek · · Score: 1

      Not strange at all, as Python beats the crap out of php.

      Or are you just trolling?

    32. Re:Performance, anyone? by Nicolay77 · · Score: 1

      I was using Python as "the slowest of mainstream computer languages" for comparison with Ruby. In fact that's the point I was trying to make.

      So you're telling me that Python is faster than PHP? That's news to me.

      --
      We are Turing O-Machines. The Oracle is out there.
    33. Re:Performance, anyone? by Anonymous+Brave+Guy · · Score: 2, Funny

      (format-for-slashdot(report-answer(probably

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    34. Re:Performance, anyone? by YGingras · · Score: 1

      Yes, I'm not a native speaker either and we sometime try to use cleaver shortcuts that the language offers with suboptimal results. It is usually safer to spell things out explicitly but you probably figured that out by now. For your original post. Common Lisp is fast because of the declarations. You can infer the types up to some point (you can infer a lot actually, take a look at OCaml) but the keep aspect of fast compilation is that you can discard some generic operations when you know you won't need them. To get the same performace boost in Ruby, Python, Perl or some other language would require some declaration system or that some basic operations have specific types like in OCaml. The OCaml way doesn't play that nice with operator overloading and stuff like that. It's not that Common Lisp compilers are really smart, it is just that they have more information to begin with. You might like to read Lisp in Small Pieces. You'll find plenty of info on efficient implementation of many of the language constructs like lexical scoping, closures and multiple namespaces. Seeing how they are implemented makes the whole easier to visualize.

    35. Re:Performance, anyone? by newt0311 · · Score: 1

      Essentially yes. This is a phenomenae known as network externalities. It where something stays established because it is already established. Example, windows, IE, TCP/IP, IPv4, JAVA, etc... In each case, the reason those standards are still so widespread is because they are widespread. Windows has many alternatives many of which are technically superior (I knwo this is a debatable point). IE has a firefox alternative but it is still the mainstream. TCP/IP have many alternatives (fastband was one of them) but notice how the alternatives dies because everybody already used TCP/IP. IPv4 has a clearly superior alternative (IPv6) but IPv6 is not widely used so the only way to push it forward right now is through massive gov. funding. LISP as a standard may have been there before but decent implementations only came out in 1985 when C was already king. Unless something drastic happens, LISP will keep its position as a speciality language.

    36. Re:Performance, anyone? by Anonymous Coward · · Score: 0

      O'Caml and Standard ML are respectable languages. You'll immediately bump into things, though. You cannot have anything like a DLL in O'Caml. You can have libraries but they won't be dynamic, so updating a library will mean recompiling the program(s) that use it if you wish to see the changes propagate. You'll notice a lack of reflection, if you come from a Java/Smalltalk background. The concessions O'Caml makes in the standard library for the absence of reflection and non-static typing in general is to make 'holes' in the type system where functions have return types like 'a. O'Caml has a first-rate object system with a basis in structural subtyping, which is much more pleasant than the inheritance hierarchy cruft of Java/C#/C++. Standard ML has fewer bindings and bindings aren't easily moved from one Standard ML compiler to another.

      Alice ML adds support for some dynamic typing to enable more 'modern' development practices. This pokes different kinds of 'holes' into the type system, but the mechanism in Alice ML is safe. AliceML actually has a lot of interesting features, but it's built around a VM which may dissuade its use by some.

      I don't have much interest in/knowledge of Erlang.

    37. Re:Performance, anyone? by jma05 · · Score: 1

      First - standard tech != old tech

      There are a certain languages that are well established currently in certain application domains as being reliable for that purpose (whether or not they actually are is unfortunately less relevant), not just because of the features but because many others are using it for the same use cases along side you. It gives more confidence when a new project is undertaken.

    38. Re:Performance, anyone? by ClosedSource · · Score: 1

      "They will use something anal like Java or C++.Net, spend 80% of the development schedule reinventing features that already exist elsewhere, then bring in consultants to write the actual application logic using the resultant cesspool of code that kind of looks like a Java-based Visual Basic emulator :P"

      What is this feature portability you imply?

      "The point of all this is that most developers are paid by the hour, so doing their work quickly and efficiently is actually detrimental to their bottom line."

      Where do you work? I've been in this business for many years and the only developers I know who paid by the hour are consultants.

    39. Re:Performance, anyone? by be-fan · · Score: 1

      A good Lisp implementation is probably an order of magnitude faster than Lua.

      --
      A deep unwavering belief is a sure sign you're missing something...
    40. Re:Performance, anyone? by be-fan · · Score: 1

      The basic problem for Lisp is inertia. I'm starting a project right now to work on air-traffic algorithms. In these sorts of research projects, the usual "design -> implement" methodology goes out the window. Instead, you get a loop between design and implementation. You pick some initial algorithms, implement them, simulate the system, use the results of simulation to improve the algorithms, and repeat. Having worked on such a project in C++ for several years, I can tell you that C++ is just not great for such tasks. Lisp, on the other hand, excels at such tasks, because of how rapidly code can be changed, and how quickly prototypes can be mutated into final implementations.

      In an ideal world, I'd do this project in Lisp, hands-down. But the world is not ideal. I'm the only one on the team experienced in Lisp, and we've got a tight deadline with no time for training in the implementation language. Then there are considerations about what happens when I leave, or when the code gets passed to another team to work with. Its a self-perpetuating cycle --- people don't know Lisp because people don't use Lisp; people don't use Lisp because people don't know Lisp.

      The standard library issue is also another problem, but it's secondary to the basic issue of the lack of a large Lisp talant pool and the lack of strong commercial support.

      --
      A deep unwavering belief is a sure sign you're missing something...
    41. Re:Performance, anyone? by marcello_dl · · Score: 1

      > I still don't seem what advantage Ruby has over Lisp or Smalltalk.

      IIRC Smalltalk doesn't have open classes and mixins (kind of multiple inheritance). These features can be abused leading to hyperspaghetti code (tangled in a couple more dimensions than regular spaghetti code) but they let people implement very elegant solutions. Over lisp... uhm... it helps with repeated stress syndrome on typing parentheses :)

      It would be cool to see common lisp or io "on rails", though.

      --
      ---- MISSING MISCELLANEOUS DATA SEGMENT --- [sigdash] trolololol
    42. Re:Performance, anyone? by TheRaven64 · · Score: 2, Interesting

      Objective-C has categories, which allow adding methods to a class at runtime. It is a pure superset of C, so it can be mixed with C (and, now C++) in the same source file. Oh, and the whole 'on rails' concept is a copy of a web framework that began life with Objective-C; there's even a Free re-implementation of it, take a look at GNUstepWeb for more information.

      --
      I am TheRaven on Soylent News
    43. Re:Performance, anyone? by Lucas.Langa · · Score: 1

      Yep. It's a bare AST representation after all. Thus it can be even faster than C in some algorithms. My initial post is kind of misstated (I'm not a native speaker). Check my other responses in this thread, I clarified that out.

      --
      Build a tool even an idiot can use and only an idiot will want to use it. -S.O.B.
    44. Re:Performance, anyone? by killjoe · · Score: 1

      "Why isn't Lisp popular if it's so 1337?"

      I think because it's hard.

      LISP also has some other drawbacks but that's the main one I think. LISP is great if one person can keep the entire program in his head at all times, it's not so great when you have 30 people working on the code at the same time. Oddly enough although java and c# are both bondage languages and can help in team development they are not ideal either because they lack real contracts.

      C# is going to get them soon and is fast becoming a garbage dump of a programming language trying to evolve itself into being java, eiffel, vb, and haskell all at the same time. God only knows where that's going to end up.

      --
      evil is as evil does
    45. Re:Performance, anyone? by newt0311 · · Score: 1

      um... in smalltalk, there is no source code really. You just have an object environment. as a result, compartmentalization sucks. if random programs start re-defining similar objects, you are screwed. That is probably the biggest barrier in smalltalk development. Smalltalk is a great language but it is certainly not a practical language. lisp has similar problems except it does have some forms of compartmentalization and has strict naming scheams so it is not that much of a problem. In terms of capability, I have found both languages to be roughly the same with the one exception that lisp macros are awesome and lisp and ASM are the only languages where I have found such powerful macros. (c pre processor macros do not count since variables can not be localied like with lisp un-interned variables). I personally like the minimalist syntax of lisp but I have done very little coding in smalltalk and a lot in lisp so I am a bit biased there.

    46. Re:Performance, anyone? by nuzak · · Score: 1

      > Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.

      He forgot to add "that's still capable of running without dragging a system image behind it".

      Lisp weenies like to think they invented computation and that all other languages are mere shadows on the cave of their perfect platonic ideal. Of course writing actual software to prove it is beneath their dignity.

      --
      Done with slashdot, done with nerds, getting a life.
    47. Re:Performance, anyone? by jericho4.0 · · Score: 1

      Don't let he smugness turn you of learning Lisp, or at least enough to write a few small programs. It's been said before; Lisp is a discovery, not a language. The book "Practical Common Lisp" is available for free download, and really nails the 'practical' bit. Many other intros to Lisp read like textbooks.

      --
      "A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
    48. Re:Performance, anyone? by nuzak · · Score: 1

      > IIRC Smalltalk doesn't have open classes

      Technically smalltalk doesn't have compilation units at all, so classes never really get "closed" in order to be "opened". You bang on a class directly, while the system is running. Lisp environments typically have this feature too, though more as an accident of their implementation (the CL spec certainly doesn't mandate it).

      > It would be cool to see common lisp or io "on rails", though.

      You mean saddled with a mediocre O-R mapper, template language, and MVC model that comes to dominate any web project done in those languages despite the flaws that a very "opinionated" project leader refuses to address? Naw. It'd be nice to see something like Seam or Spring Web Flow for Lisp or Io. Incidentally there was a project for CL called "Lisp on Lines", but it didn't really go anywhere.

      --
      Done with slashdot, done with nerds, getting a life.
    49. Re:Performance, anyone? by Jerry+Coffin · · Score: 1
      I'm not sure what you meant by that, but many Common Lisp implementations compile and run equivalent in speed to C/C++.

      Somehow, I doubt you've really read that paper very carefully. At least IMO, you're seriously mis-characterizing what it really contains. First of all, it contains no comparison to C++ at all, only to C. Second, while they use a number of Lisp compilers, they use only one C compiler -- and one that doesn't optimize terribly well either. Finally, the test code they used was, quite frankly, so trivial, that nearly any compiler for any language ever invented should be able to produce results almost indistinguishable from hand-written assembly language (in fact, if anything is surprising about the LISP code, it's the extra work required to make it competitive -- in fact, their optimized Lisp code is longer, and IMO more difficult to read, than hand-written assembly for these tasks).

      I agree that Lisp's reputation for poor performance is largely undeserved. Nonetheless, this paper falls well short of showing that it's equivalent to C except, at best, in extremely limited circumstances. C, in turn, falls well short of the performance of C++. Libraries like Blitz++ allow C++ to offer substantially better performance than C. Likewise, other compilers generally offer substantially better performance from either C or C++ code. As a result, even though Lisp does far better than most people expect, C++ with a good compiler still wins by a fairly wide margin.

      OTOH, I feel obliged to reiterate: the reputation for poor performance is largely undeserved. If you start with a good design, a decent implementation in Lisp will usually give perfectly acceptable performance. Compared to a program in C, it might (or might not) suffer a slight penalty in raw speed of low-level operations. OTOH, given the difference in mind-set between typical C programmers and typical Lisp programmers the overall speed of the Lisp version will often be better, because they'll do more optimization at a higher level (e.g. caching frequently-used results instead of re-computing them). Very few programs really depend primarily upon the raw speed of a few simple operations such as those examined in this paper -- architecture and design are what make the big differences.

      --
      The universe is a figment of its own imagination.
    50. Re:Performance, anyone? by Anonymous Coward · · Score: 0

      Don't underestimate what a well-designed dynamic language can acheive -- the "Computer Language Shootout" over at alioth.debian.org has some interesting benchmarks re: python -- and they're still testing on 2.4.3, informal use of 2.5 shows a large speedup across a quite broad area.

      The one that gets me is python v. C -- C should be faster, in every respect, than its interpreted comrade -- but look at the "regex-dna" test on http://shootout.alioth.debian.org/gp4/benchmark.ph p?test=all&lang=python&lang2=gcc.

      Compare python with Java on the same page, and tell me how a language that publicly states to prefer readability over speed can match up with Sun's heavily-optimized, compiled beast? Python's interpreted and dynamic, Java is compiled, (and likely optimized all the way to machine level, at least on common platforms) and yet, python actually manages to win a few cpu time points.

      Perl's performance was a surprise to me, at least as compared with python.

      And yes, python is (at least on yon shootout) usually faster than PHP, and there are more than a few python idioms that cannot be expressed in PHP.
      http://shootout.alioth.debian.org/gp4/benchmark.ph p?test=all&lang=python&lang2=php

      PS - almost all of the code used in the python benchmarks was done in the naive way -- changing loops to list-expressions and other such functional ideas would result in a (very) significant speedup, more details are given esp. in the 2.5 changelog.

      Now if we could only get optimized tail calls. (yeah, right)

    51. Re:Performance, anyone? by gregben · · Score: 1

      Where do you work? I've been in this business for many years and the only developers I know who paid by the hour are consultants.

      By the hour versus by the job or work product. Anyone who's paid a salary is paid by the hour,
      it just doesn't appear that way at first glance.

      If someone is paid to accomplish a certain goal regardless of the hours it takes to accomplish it
      the result is dramatically different. In application programming the result is a program with
      no frills and few or no optimizations that meets the specifications and rarely does more.

      I do this all the time and make a game out of trying to deliver exactly what is specified
      in as little time as possible. In practice this type of work is done by fixed-bid contract.
      I bid a fixed price up front to perform a certain task. If the customer likes the bid,
      I do the work and hope that I estimated the time (and potentially materials) correctly.
      The customer pays the same price no matter what sort of torture I went through (or not) to
      accomplish the task.

      After doing this for a number of years you get pretty good at it.

    52. Re:Performance, anyone? by mapcan · · Score: 1
      "In an ideal world, I'd do this project in Lisp, hands-down. But the world is not ideal. I'm the only one on the team experienced in Lisp, and we've got a tight deadline with no time for training in the implementation language."


      I've been that "only Lisp guy" and had good success mentoring small teams (say 8) to Lisp profiency. Any good development team will have a star or two who get it really fast and help mentor the others. Both times I've tried this it worked, and both times one of the main advantages was the excitement that developed on the teams.

      It's not so much about learning Lisp as about what happens to you while you're learning Lisp. There are companies out there that understand the value of having a team of developers gel and produce the best work of their careers. Hard to quantify this for management though, you really need to have their trust.

      For me Lisp blurs the line between science and art, it is a work of genius that transcends both. It places very minimal barriers between your designs and their implementation. Once you are conversant it becomes unconcious; it is akin to a musician becoming accomplished at their instrument. With the lack of concious effort they feel the music more than play it. Any skilled painter can also relate.

      GUI's like Emacs and SLIME facilitate reaching this Zen state. Keyboard based commands become ingrained in muscle memory and the developer is free to focus on the patterns and frameworks of their design. The process feeds back on itself and the result is truely enlightening. These people aren't writing code, they're producing art.

    53. Re:Performance, anyone? by TheRaven64 · · Score: 1

      in smalltalk, there is no source code really. You just have an object environment. as a result, compartmentalization sucks. if random programs start re-defining similar objects, you are screwed That's more of an implementation issue. GNU Smalltalk, for example, is file-based. In Squeak, the dominant Free Smalltalk, it is certainly the case, but it is typical to have one application per image, so you have the entire development environment for that project in one place. When you want to deploy it, you just give people a copy of the virtual machine image and they run it. This is really great for developing web applications (with Seaside), since you can get a snapshot of the running application just by copying the image back to your development machine.
      --
      I am TheRaven on Soylent News
    54. Re:Performance, anyone? by be-fan · · Score: 1

      It's not so much about learning Lisp as about what happens to you while you're learning Lisp. There are companies out there that understand the value of having a team of developers gel and produce the best work of their careers. Hard to quantify this for management though, you really need to have their trust.

      Yes, there are certainly places where this works, but unfortunately they're pretty hard to come by. In my world (research engineering), code is as often as not written by engineers, not programmers. Engineers generally have neither the inclination nor the proclivity for quickly learning a new language in support of a project. Moreover, since a lot of that code is throw-away code (you don't care about the quality of the implementation since you just care about the output), its often developed on a compressed schedule that leaves no time for new techniques on the software engineering side of things.

      I'd imagine the roadblocks exist in many other segments of programming. For example, alternative languages are hard to push in large corporations, where large groups of people with the same skillset need to be gathered, and some substantial level of turnover is expected. A big corporation like Microsoft needs to gather thousands of good programmers for a single product. It would be difficult to gather a thousand Lisp programmers, period, much less a thousand good ones.

      --
      A deep unwavering belief is a sure sign you're missing something...
    55. Re:Performance, anyone? by be-fan · · Score: 1

      I agree with you in general sentiment, in that given equally well-written Lisp and C code, and good compilers, I wouldn't count on the Lisp code being closer than a factor of two to the C code, though in many cases it'll be much closer. However, there are a few finer points:

      1) I find it, in general, rather difficult to get excited over a factor of two in pure CPU performance these days. I/O is the bottleneck in a lot of code, and in a good Lisp implementation, I/O will be as fast as it is in C.

      2) Good Lisp compilers are harder to come by than good C compilers. Allegro is good at both high-level and low-level optimizations. SBCL is great at high-level optimizations, but its code-generator is a bit creaky. If either got half the attention of Intel C++ or even GCC, they'd be substantially faster.

      3) Its hard to write C code as well as Lisp code. I write the same code in Lisp in a fraction of the time it takes me to write it in C++. If performance is the goal, and in that extra time I can improve my algorithms, then Lisp still wins, constant factors aside.

      4) You'll never face the situation where your Lisp just isn't fast enough. Most Lisp compilers can be cajoled into generating the same code as a C compiler by writing C-level code in Lisp. And if worse comes to worse, calling out to assembly for that critical routine is trivially easy. And with all that time you save on the 80% of your program that isn't performance sensitive, you can afford to do more low-level tuning of the 20% that is.

      --
      A deep unwavering belief is a sure sign you're missing something...
    56. Re:Performance, anyone? by ClosedSource · · Score: 1

      "Anyone who's paid a salary is paid by the hour,
      it just doesn't appear that way at first glance."

      No. Most engineers (in the US at least) on salary are exempt and thus only get paid for 40 hours a week but typically work more.

    57. Re:Performance, anyone? by shutdown+-p+now · · Score: 1

      I find standard Smalltalk lacking in some departments. What about namespacing, for example?

    58. Re:Performance, anyone? by marcello_dl · · Score: 1

      > You mean saddled with a mediocre O-R mapper, template language, and MVC model that comes to dominate any web project done in those languages despite the flaws that a very "opinionated" project leader refuses to address?

      I meant a web app mvc framework. If it lets you also sketch up apps like rails does, or addresses some rails shortcomings while keeping the differential of performance between lisp and ruby, great.

      --
      ---- MISSING MISCELLANEOUS DATA SEGMENT --- [sigdash] trolololol
    59. Re:Performance, anyone? by jbolden · · Score: 1

      we don't really see a large, consistent standard library for Lisp.

      You absolutely do, that's what Common Lisp is; a Lisp with a very large, consistent standard library (now the bad part) for types of OSes that stopped being used by the early 1980s. And that's really the problem. Lisps stopped evolving in the late 1970s. And no Lisp programs often only contain small re-implementations of interfaces to modern OSes.

      Further as Paul Graham puts it:

      Lisp and Fortran were the trunks of two separate evolutionary trees, one rooted in math and one rooted in machine architecture. These two trees have been converging ever since. Lisp started out powerful, and over the next twenty years got fast. So-called mainstream languages started out fast, and over the next forty years gradually got more powerful, until now the most advanced of them are fairly close to Lisp. Close, but they are still missing a few things....


      What is happening is that ideas from LISP are slowly getting put into today's C based languages about one every 5 years or so. OTOH why wait?

    60. Re:Performance, anyone? by jbolden · · Score: 1

      Microsoft has a ton of LISP people. Bad example.

    61. Re:Performance, anyone? by be-fan · · Score: 1

      Maybe, but not to the point where they'd be able to do a large-scale product in Lisp. There are literally thousands of developers working on something like Office. That's probably a substantial fraction of the number of experienced Lisp developers put together.

      --
      A deep unwavering belief is a sure sign you're missing something...
    62. Re:Performance, anyone? by jbolden · · Score: 1

      Oh I don't know.

      -- The entire .NET compiler (that is VB, Java, C#...) is essentially written in ML
      -- STL has come over from PL/Haskell
      -- LINQ is basically LISP for VB
      -- The Mactopia group is thinking of embedding a LISP in as their macro language for office

      I'd say those guys are having an influence.

      But the final example is:
      -- For about a decade Microsoft used to offer a wonderful C tutorial along with Microsoft C. The final exercise (fully worked btw) was to implement a Common Lisp compiler.

    63. Re:Performance, anyone? by be-fan · · Score: 1

      - The .NET compilers are implemented in C#, the class libraries are implemented in C#, and the CLR is implemented mostly in C.
      - The STL has nothing to do with Microsoft, it was created by Alexander Stepanov while he was at SGI.
      - LINQ is the antithesis of Lisp. LINQ directly implements syntax necessary to support queries. The Lisp approach is to define a general macro language, which can be used to implement syntax extensions in a general manner.

      Undoubtedly, Lisp is in a position to influence other designs. Lisp is a major language that pioneered a lot of important ideas, and it any new design can leverage those ideas. However, we're talking about actually using Lisp as an implementation language on a major product.

      --
      A deep unwavering belief is a sure sign you're missing something...
    64. Re:Performance, anyone? by jbolden · · Score: 1
      I'd say you are mistaken regarding the design of the CLR. Take for example the original "C--: a portable assembly language that supports garbage collection" papers. I can't see how you can't see that as a move towards what amounts to using a LISP machine for a runtime rather than using hardware.

      In terms of the STL reference, it is being incorporated as the major concurrency strategy for C# (and VB for that matter).

      Undoubtedly, Lisp is in a position to influence other designs. Lisp is a major language that pioneered a lot of important ideas, and it any new design can leverage those ideas. However, we're talking about actually using Lisp as an implementation language on a major product. Actually no, what I'm arguing is that Microsoft is pushing their languages division in the direction of of adopting the ideas and capabilities of LISP. That is lispy features and lispy paradigms. There are no modern full featured LISPs to just pick and use.
    65. Re:Performance, anyone? by bensch128 · · Score: 1
      Why would we want to rewrite a subset of Lisp in Ruby???

      Maybe because not everyone enjoys trying to think in reverse polish notation.
      I mean compare the readability of Ruby vs Lisp: (taken from the article)

      [1,2,3].map {|n| n*n }.reject {|n| n%3==1 }
      to

      (remove-if (lambda (n) (= (mod n 3) 1))
                (mapcar (lambda (n) (* n n))
                        '(1 2 3)))
      I barely know where to start with the lisp code, not to mention that the actual beginning data set (1 2 3) is lost in a sea of parantheses.
      I do believe that Lisp's AST form is extremely powerful but at an extreme cost to readability. (Unless you break up each block into a seperate function but then you start losing elegence) It's annoying to have to read the code bottom-to-top starting with the innermost list first. Why not just let the compiler/interperter maintain the AST and let us mere mortals work with a nice readable infix notation which easily expresses program flow?

      I think that's why Lisp will eventually be functionality overcome by C-based/infix notation languages. The mainstream is taught infix notation (algebra) from a very early age.

      Cheers
      Ben
    66. Re:Performance, anyone? by bensch128 · · Score: 1

      Umm, just found this: http://www.dwheeler.com/readable/

      This might be interesting to check out. (except for using indentation as scope indicator. should be replaced with { } IMHO)

      Cheers
      Ben

    67. Re:Performance, anyone? by billcopc · · Score: 1

      Exactly, it's human nature (especially in unhappy humans) to put in the least effort. If you're paid a salary for a 40 hour week, you're going to do what it takes to make your work fit in that 40 hour frame and avoid overtime, because let's face it nobody likes to work for free, that's why it's called "work". Like you said, when it comes to software development there is so much room for interpretation that you can deliver a great product with extra time and effort (for free), or you can earn the same money by delivering a mediocre but contractually sufficient product that fit within your schedule. There is the incentive to not work beyond your 40 hours, but there isn't much to encourage you to get it done in less, unless you're self-employed.

      What if your boss said: here's your list of assignments for the week, if you get them done before the 40 hour mark you can go home. Don't you think you would try to find the most efficient way to do it, and maximize your free time ? Sure.. but then business factors dictate that the boss will give you a heavier work load the following week, and now you're having to do more work for the same money. Corporate greed has been serviced yet again, and you're the bitch. This attitude has led to people doing the strict minimum required to get paid, as well as that neat concept called "job security" where you make yourself look busier and more important than you really are, just so you don't get replaced with the newer, faster, more conformant model.

      It's an ugly balance but that's just what it is: balance. No matter what you try to improve it, an equal and opposing force will come to push back.

      --
      -Billco, Fnarg.com
  3. There is an improved VB... by daveling · · Score: 1

    VB has been improved and perfected it's called Delphi, the IDE of VB, the power of C++, Components, Databases, everything you could need and now it's run by developers - www.codegear.com

    1. Re:There is an improved VB... by fatphil · · Score: 1

      Delphi's nothing to do with VB. Delphi was the counter to VB by MS's arch-enemy, Borland, and was an evolution of their TurboPascal. It's an imperative, object-based, language, but that's all it shares with VB.

      --
      Also FatPhil on SoylentNews, id 863
    2. Re:There is an improved VB... by daveling · · Score: 1

      This is probably getting off topic, but I'd have to disagree with this I'm afraid.

      Delphi provides a set of components on a palette that can be dragged and dropped onto a form, same as VB. It has events same as VB.

      Where it differs is that the components can be inherited in Delphi, Delphi requires no runtime, Delphi is a native compiler, and so on. In fact it was so good Microsoft stole the lead developer (http://en.wikipedia.org/wiki/Anders_Hejlsberg) from Borland and made C#.

    3. Re:There is an improved VB... by Anonymous Coward · · Score: 0

      What you are comparing are the IDEs not the languages.
      Object Pascal is nothing like Visual Basic (the language).

    4. Re:There is an improved VB... by fatphil · · Score: 1

      Precisely which bit of my post do you think is incorrect?

      --
      Also FatPhil on SoylentNews, id 863
    5. Re:There is an improved VB... by daveling · · Score: 1

      'Delphi's nothing to do with VB'

    6. Re:There is an improved VB... by Arker · · Score: 1

      Delphi is NOT in any way related to the steaming pile of VB. It's a dialect of object-pascal.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    7. Re:There is an improved VB... by Flodis · · Score: 1
      This is probably getting off topic, but I'd have to disagree with this I'm afraid. Delphi provides a set of components on a palette that can be dragged and dropped onto a form, same as VB. It has events same as VB.
      Then, by the same logic, just about all languages that use Visual Studio as their IDE are also descendants of VB. This includes not only VB.NET, but also C# and C++/CLI and some others.

      There's more to VB than this, I'm afraid.
    8. Re:There is an improved VB... by fatphil · · Score: 1

      That's a shame, as Delphi's nothing to do with VB.

      --
      Also FatPhil on SoylentNews, id 863
    9. Re:There is an improved VB... by ralphdaugherty · · Score: 1

      In fact it was so good Microsoft stole the lead developer (http://en.wikipedia.org/wiki/Anders_Hejlsberg) from Borland and made C#.

            If I'm not mistaken they bribed the whole dang development team away along with Anders to crush Delphi and create their own embraced and extended clone, C#.

            Standard operating procedure through the years from them, just as they did to Foxpro and everyone else with superior Windows products. Anyone kicking the crap out of MSFT gets the same treatment, until there aren't any Windows products left kicking the crap out of MSFT.

            Hence Linux, which MSFT can't crush with their usual MO.

        rd

    10. Re:There is an improved VB... by 313373_bot · · Score: 1

      I don't intend to sound rude, but Delphi allows the very same people (non-programmers) who code messy VB to create even messier, more powerful and consequently more dangerous applications, with its "Object Pascal". I have met (and unfortunately had to work with) some reasonably competent but otherwise very arrogant "programmers" which insisted Delphi was as powerful as C++ (maybe), but unable to debug their own sad little application (hint: it was a buggy dragged-and-dropped component, provided by Borland/Inprise no less.)

      Mod me flamebait if you will, but real programmers must learn at least some C++ (imperative) *and* some LISP (functional) before even attempting to advocate for or against any other programming language.

      --
      ^[:q!
    11. Re:There is an improved VB... by Eli+Gottlieb · · Score: 1

      I started learning to program with Delphi. Then C and C++. Then Java and Lisp. I still use Object Pascal, because while it doesn't have the sheer expressive power of C++ templates and operator overloading, my experience tells me that just leads to fewer bugs.

    12. Re:There is an improved VB... by 313373_bot · · Score: 0

      I congratulate you for taking the time to learn other languages before making a deliberate choice. I have no problem with Pascal, Delphi, or any other programming language by itself, if the tool solves the problem at hand that's great. The problem is the people who learn just one language, and that language becomes the very best thing in the world - just like the proverbial guy who has only a hammer, and all his problems just start to look like nails ;)

      --
      ^[:q!
    13. Re:There is an improved VB... by LardBrattish · · Score: 1

      Which of course is why Delphi 1 was referred to internally as VBK (Visual Basic Killer)

      --
      What are you listening to? (http://megamanic.blogetery.com/)
  4. Genuine question about perl vs ruby by thanasakis · · Score: 3, Interesting

    I am not trying to start a holy war thread about perl vs ruby, just looking for someone that can enlighten me regarding the following question.

    Having perl as it is, what are the reasons to take a look at ruby. Mind you, I am not saying that these reasons do not exist, I guess I was just lazy to find it out by myself and then again, nobody has yet offered any compelling reason. I have taken a good look at ruby, clean syntax and all, but really I couldn't find something really compelling.

    An interesting phenomenon is that most stuff that people perceive as a reason to go to ruby from perl, are available in perl too, but somehow they offer those stuff an novel.

    Please don't take me the wrong way, I can testify that ruby is indeed a kick ass piece of work, I am trying to find real reasons to use it along side with perl.

    So, fire away your opinions!

    1. Re:Genuine question about perl vs ruby by fatphil · · Score: 1

      I'm a striaght down the line Perl guy when it comes to scripting.
      Yet recently I've noticed that each new version of Perl is slower than the previous one.
      I want to do complicated things in my scripts (I've written web servers in Perl for example),
      and speed, when you notice that you're losing it, is important.

      However, Ruby's not the one to replace Perl in that regard:
      http://shootout.alioth.debian.org/debian/benchmark .php?test=all&lang=ruby&lang2=perl

      So I'm still looking for something to depose Perl...

      --
      Also FatPhil on SoylentNews, id 863
    2. Re:Genuine question about perl vs ruby by Lucas.Langa · · Score: 1
      An interesting phenomenon is that most stuff that people perceive as a reason to go to ruby from perl, are available in perl too, but somehow they offer those stuff an novel.

      Yeah, we can also say that any feature of Prolog is available at assembler level. You only have to know how to use all these MOVs and JMPs. Speaking more seriously, though, I guess that it's not about the availability of language features but about the overall lightbulb effect ("OMFG! I would NEVER thought of that. And this is SO obvious!", etc.). Python for instance advertises that "it fits your brain". And maybe it's just about it. Perl is so flexible that it often is just too complicated to comprehend.

      About a fair Ruby/Perl comparison, I don't really know. I'm just like you, too lazy to check this one out.

      --
      Build a tool even an idiot can use and only an idiot will want to use it. -S.O.B.
    3. Re:Genuine question about perl vs ruby by JanneM · · Score: 4, Insightful

      To me, as an old Perl programmer, Ruby basically feels like what Perl 6 should have become: keeping with the idea of making things discoverable for the programmer and not having to work around syntax, but greatly cleaned up and with objects as an integrated part of the language, not so tacked-on as in Perl 5.

      Ruby still has some pretty significant drawbacks, of course; it's slow, and has little support for Unicode (not that surprising, seeing it's from Japan). The libraries aren't as mature yet either; Perl has many year's headstart there so again no surprise. All of these are improving, though.

      --
      Trust the Computer. The Computer is your friend.
    4. Re:Genuine question about perl vs ruby by morgan_greywolf · · Score: 3, Informative
      Having perl as it is, what are the reasons to take a look at ruby. Mind you, I am not saying that these reasons do not exist, I guess I was just lazy to find it out by myself and then again, nobody has yet offered any compelling reason. I have taken a good look at ruby, clean syntax and all, but really I couldn't find something really compelling.


      Having Perl as it is, what are the reasons to take a look at Python? Having Python as it is, what are the reasons to take a look Ruby? Having Ruby as it is, what the reasons to take a look at Perl? Having Python as it is, what are the reasons to take a look at Perl?

      Because they're different languages with different strengths and weaknesses. Just as Lisp and Ruby are different, and Python and Perl are different, so is Perl and Ruby.

      A good staring point for you would be to read this article differentiating Perl and Ruby. Working back from that description, if you have experience in programming in languages other than Perl, you should be able to figure out what the advantages are of Ruby over Perl and vice-versa.
    5. Re:Genuine question about perl vs ruby by Anonymous Coward · · Score: 1, Interesting
      I think this is an interesting question. I assume that it is because most of them are either pragmatic programmer loyalists and they've needed a new language so that they could write books about it or most of them haven't programmed before and Ruby is kind of hot at the moment. I like ruby, it is kind of neat but I get this overwhelming feeling that very few members of the community have done any significant engineering and have close to no computer science either.


      The comparison to Lisp, to me, and I actually am a computer science grad, is really interesting. You see, perl has maybe the shittiest syntax of any regularly used language, either it or C++. You can take snips of it and they can mean radically different things syntactically depending on the program around them. You can do beautiful things in both and you can do terrible things, incredibly terrible things. (I'm not against Perl or C++, just that a large amount of code in those languages has rather ugly looking syntax)


      Lisp, doesn't have syntax. Aside from macros. You program in abstract syntax trees. Why you'd want to make that more perl-like or anything-like is foolish, it's perfect as it is. Maybe you want ASTs to be formatted differently but it's still ASTs. There is no syntax to fix, if you with to fix it produce a language and take the ASTs and make them LISP compliant. It's like taking a muscle car and then trying to make it a bit more prius like, it flies against everything that makes the muscle car a muscle car. I'm trying to make black just a little bit more white. It seems to me that you don't really understand Lisp if you're trying to replace it with Ruby or make it more perl like. Possibly just a side-effect of the pragmatic guys, they suggest learning a new language every year and most of their loyalists spend a couple weeks, read a book or two and call it "learned" when maybe they should spend half their coding time coding in it. There is nothing remotely lisp-like about Ruby, not even close; closures? That's it? come one.


      So Ruby is the output of a plan to take a syntax-less language and make it a bit more like a language with, IMO, one of the shittiest syntaxes around? How does any of this help me write programs that are more correct, more reliable and have more features and do it in less time? Sure, there is a tiny bit less typing because of the syntax..

    6. Re:Genuine question about perl vs ruby by Jonathan · · Score: 5, Informative

      1) Object Orientation is consistent throughout the language. Perl provides ways to make objects, but none of the built in functions or datatypes are objects, making your code a schizophrenic mess of objects and non-objects.

      2) Consistency -- In Perl it is needlessly difficult to do ever simple tasks like making arrays of arrays or arrays of hashes -- you have use a weird syntax to get at references. I never could remember it and always had to look it up whenever I needed an array of arrays in Perl. In Ruby, everything is a reference to an object so you don't have to worry about it -- a[0] = [1, 2] does exactly what you want -- puts an array [1, 2] in the first element of array a.

      I used to be a big Perl fanboy -- I did most of my programming in Perl from 1992-1999. But when I discovered Ruby I went for it and never looked back. What's cool about it is that its syntax is so clean that it is basically a version of the pseudocode I have in my head. In the Ruby community there's a phrase for it -- "the principle of least surprise" -- things just work.

      Obviously, if you really like Perl, nothing is going to make you change. But if you are just keeping with Perl because of inertia, then you ought to look around at other scripting languages. Ruby is my favorite, but most modern scripting languages are cleaner than Perl.

    7. Re:Genuine question about perl vs ruby by thanasakis · · Score: 1

      Hi,

      It becomes crystal clear very soon when you look at ruby that its syntax is not even in the slightest sense as complicated as perl's. But then again, most people went to perl in the first place to be able to leverage that characteristic. So why move away from it?

      The only real reason that I can think of, it that as someone progresses as a programmer, he/she may find that his/her tastes change gradually.

    8. Re:Genuine question about perl vs ruby by Goaway · · Score: 1

      In the Ruby community there's a phrase for it -- "the principle of least surprise" -- things just work.

      And 0 being true is the least surprising behaviour, now?

    9. Re:Genuine question about perl vs ruby by Anonymous Coward · · Score: 0

      If you're already comfortable with Perl then probably you won't have big reasons for switching, but when starting from scratch then the much cleaner and easier Ruby syntax would probably be more attractive and make you productive in less time.
      On the other hand, Perl is still faster and has a wider choice of external libraries/modules, but people say it's becoming slower and the RAA repository is growing fast, so it's probably better to stick with the one you like more while keeping an eye on the other.

    10. Re:Genuine question about perl vs ruby by iwein · · Score: 1

      Download a copy of InstantRails and take 60 minutes to create your own full blown webapplication. If you think you can do faster and better in Perl, I bow to you mighty Perl God.

      The thing is (as mentioned before <url:http://it.slashdot.org/comments.pl?sid=216794 &threshold=3&commentsort=0&mode=thread&pid=1760197 8#17602172/>) that if you're really comfortable with any language you should stick to it if you can. If you're beginner to medium in almost every language like me, you should use the language that fits the purpose. Even if it means learning a new one.

      To be more specific, I have my fair share of positive experiences with scripts that do nifty things with strings. I wouldn't want to write those without Perl. I also have my share of experience with setting up web applications. I wouldn't want to be there with Perl.

      The good thing about Perl is that you can do anything. The good thing about Ruby especially in combination with Rails is that you know what to do.

      The bad thing about Perl is that you can do anything.

      The 'convention over configuration' is what impressed me most about Ruby on Rails. But on the other hand it is hard to beat the ad hoc availability of Perl. Not to forget the HUGE pile of ready to use modules for all purposes you can dream of.

      I would say try it out, and love it. And then keep using Perl for what it's not really covering yet.

      --
      Show a man some news, distract him for an hour. Show a man some mod points, distract him for the rest of his life.
    11. Re:Genuine question about perl vs ruby by Jonathan · · Score: 1

      And 0 being true is the least surprising behaviour, now?

      Because 0 is defined. It exists. In most programming languages either 0 is true or the notion of considering a number to be true or false is not allowed. It's basically C that decided to declare 0 to be false instead of defining a boolean datatype.

    12. Re:Genuine question about perl vs ruby by tacocat · · Score: 2, Insightful

      Actually there is a good reason to look at Perl given Ruby. Regular Expressions. Ruby has a object and method for doing regular expressions but compared to Perl it's very combersome and is even lacking some of the properties that Perl's regex has. Since I tend to use a lot of my programming time dealing with text of some kind, regular expression are important to me.

      Ruby is a nice language. It's easy to work with. But it's got some maturing to do and I do hope they spend at least a version working on speed and documentation.

    13. Re:Genuine question about perl vs ruby by tacocat · · Score: 1

      Perl is a great language with some amazing capabilities. They have managed to do a great job refining the real world experiences into a practical language that doesn't do very many kludges with the glaring exception of Objects.

      Ruby is a new language with a pristine implementation of what objects are supposed to be without all the cruft of Java.

      When Java started, it was also pristine and cruftless. Over time I suspect Ruby may do that same thing, bloat. It's going to take some careful management of the language to prevent this.

      Ruby is pretty easy to learn and really forces you into an Object Oriented Language mindset instead of the traditional Procedural mindset that is the natural for Perl. It's easy because there are so many inter-relations between the objects that after a time, you can pretty much guess what methods are available at a given point in time.

      Ruby is also butt slow. The real popularity of Ruby is in the Rails framework. It's a groundbreaker in how to do websites. It is also butt slow with some serious problems. But, like VB, it allows a nominal programmer to come up with some cool looking things in a short period of time. But the survivability of a Rails sight from slashdotting is considerably less than a Perl-based sight.

      Personally, I like them both and use them both. I use Perl more because that's what I've been using for work and home for eight years. But there are little projects that are nice to do in Ruby. It's just not something I would put on my mail server just yet.

    14. Re:Genuine question about perl vs ruby by Anonymous Coward · · Score: 0
      1) Object Orientation is consistent throughout the language. Perl provides ways to make objects, but none of the built in functions or datatypes are objects, making your code a schizophrenic mess of objects and non-objects.
      Also known as "using different tools for different jobs", while Ruby's everything-is-an-object approach could be compared to putting screws in with a hammer.

      Sometimes an array is just an array.

      2) Consistency -- In Perl it is needlessly difficult to do ever simple tasks like making arrays of arrays or arrays of hashes -- you have use a weird syntax to get at references. I never could remember it and always had to look it up whenever I needed an array of arrays in Perl. In Ruby, everything is a reference to an object so you don't have to worry about it -- a[0] = [1, 2] does exactly what you want -- puts an array [1, 2] in the first element of array a.
      Not the best example in the world, given that the equivalent code in Perl is exactly the same thing with a dollar sign stuck on the front. :P

      I also dispute that Perl is needlessly difficult. I wrote my first Perl script just last week. It parses a data file into a binary tree represented as nested hashes. I can't pretend it worked the first time I ran it, but nor did it take more than about half an hour to figure out the correct syntax, for someone who had never used Perl before in his life. But maybe I'm unusual in being a hacker who knows how to RTFM, eh?

      I'll grant that Perl code generally seems to tend to be very ugly. The argument-passing system is a good example of that, as is the truly awful concept of contexts. But Perl is damn good at doing what it's actually designed for, which is munging data files. I'm not sure exactly what Ruby is supposed to be good at; it's clearly trying to be a better Java or C++, except it's too slow to be useful for complex applications. I guess it may have a niche as a better PHP. (I'm sure we can both agree that PHP is the spawn of Satan.)
    15. Re:Genuine question about perl vs ruby by CoughDropAddict · · Score: 3, Interesting
      Actually there is a good reason to look at Perl given Ruby. Regular Expressions. Ruby has a object and method for doing regular expressions but compared to Perl it's very combersome and is even lacking some of the properties that Perl's regex has.

      Cumbersome? Which is this, Perl or Ruby?

      "Hello, World!" =~ /Hello, (\w+)!/;
      print $1;
      Trick question -- it's both. What exactly about Ruby's way is cumbersome?
    16. Re:Genuine question about perl vs ruby by Anonymous Coward · · Score: 1, Informative
      And 0 being true is the least surprising behaviour, now?

      That's something I like. Coupled with the facts that a method can return any type, and everything is an expression, allows you to do things like:

      if x = goDoSomethingThatReturnsAnIntegerOrFalse()

      In C you'd have to write something like

      if( (x=goDoSomethingThatReturnsAnIntegerOrAMagicNumber ()) != MAGIC_NUMBER_THAT_SURELY_WILL_NEVER_COME_UP_OTHERW ISE)

    17. Re:Genuine question about perl vs ruby by Goaway · · Score: 1

      Which "most languages" are those? For reference, here is a list of popular languages:

      * C
      * C++
      * Java
      * Perl
      * Python
      * PHP
      * Javascript
      * Visual Basic
      * C#

    18. Re:Genuine question about perl vs ruby by EsbenMoseHansen · · Score: 1
      And 0 being true is the least surprising behaviour, now?

      Yeah, I hate that! It is supposed to be "0 but true" that is true.

      --
      Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
    19. Re:Genuine question about perl vs ruby by wootest · · Score: 2, Interesting

      I agree with part of your comment. Ruby is my Perl 6 until Perl 6 comes along. I'm okay with Perl's eclectic syntax and I know some other people aren't, but for now Ruby is one of the best Perl 5 alternatives.

      The thing with Ruby this far is that it's still in its first major version by version number. There's not one bit of the Ruby design that I'd like to change dramatically, but there's a bunch of problems that arise from its current implementation. The one-pass compiling (which while surely easier to implement probably has performance and optimization implications down the road), non-concurrent thread policy and strings that default to the mythical "unspecified" encoding are some; things that all look to be set for correction in the upcoming Ruby 2.

      Then there's the lack of thorough documentation, and the air emitted by rubygems as something tacked on instead of mostly integrated (like CPAN). I am hopeful that these things will resolve themselves in due time, but as you say, Ruby is already a language to be reckoned with.

    20. Re:Genuine question about perl vs ruby by Paradise+Pete · · Score: 1
      So Ruby is the output of a plan to take a syntax-less language and make it a bit more like a language with, IMO, one of the shittiest syntaxes around?

      No, Ruby is the output of a plan for one man to make himself happier while programming. If it also makes you happy, well he likes that too.

    21. Re:Genuine question about perl vs ruby by namekuseijin · · Score: 1

      I'm actually more interested in what will happen one Perl6 is finally released and brings a much needed syntax reform and performance boost to Perl. Perl will finally get over being just a shell language of sorts to become a true programming language as well as being a shell language of sorts for those who want it to.

      I enjoy very much Ruby's syntatic clarity + its many Perlisms. But Perl6 is likely to surpass or match Ruby's features and charm, so it'll be an interesting fight.

      Right now, i'd say Ruby's main features against Perl are true named function parameters (rather than Perl implicit parameter list and stupid manual binding) and true classes rather than a much verbose prototype building. And much important clearer syntax overall, of course.

      --
      I don't feel like it...
    22. Re:Genuine question about perl vs ruby by ispeters · · Score: 1
      it's slow, and has little support for Unicode (not that surprising, seeing it's from Japan).

      I stumbled on that. Why does coming from Japan make it not surprising that it's slow and has little support for Unicode?

      Ian

    23. Re:Genuine question about perl vs ruby by thanasakis · · Score: 1
      Very good comment, I would definitely mod it up if I could.

      Indeed named function parameters are missing in Perl5.

      There is ofcourse Damian Conway's recommendation from "Perl Best Practices":

      Use a hash of named arguments for any subroutine that has more than three parameters. OTOH, perl6 has "real" named parameters.

      On the question of syntax, I don't feel that perl6 is too much clean compared to ruby. Just my impression, could be wrong.
    24. Re:Genuine question about perl vs ruby by bar-agent · · Score: 1

      Why does coming from Japan make it not surprising that it's slow and has little support for Unicode?

      The Japanese do not like Unicode. They prefer using one of their own encodings (I believe there are two major ones). From what I can gather, the reason is not-invented-here syndrome or a strawman argument against Unicode's ideograph system.

      Of course, it could just be a vocal minority. I don't live in Japan myself, so I can't tell.

      --
      i'd hit it so hard, if you pulled me out you'd be the king of britain [bash.org]
    25. Re:Genuine question about perl vs ruby by mysticgoat · · Score: 1

      I know Perl, which I started using 12 years ago when I needed its regex engine to process huge text files (output from a legacy MUMPS system). I don't earn my living as a programmer any more: I've become fascinated by systems implementation and training issues. However I end up doing 2 or 3 custom programming projects a year. Perl with DBI/DBD and Tk modules have been great. But I'm thinking that era may now be over; the next project is likely going to be a mix of perl CGIs and PHP, using MySQL for the db and HTML for the user interface. Maybe some XUL just for the window dressing...

      I have looked at Ruby. I see no technical benefits for it over the Perl that I know. But if I was just starting out today, I might choose Ruby over Perl since it seems like it would be easier to acquire saleable Ruby skills. If I ever take on a team programming project where I could not be sure of the skill levels of some of the team members, I would strongly consider using Ruby rather than Perl. (Perl's underlying philosophy is that the programmer knows what he is doing even when it looks like he is violating every rule in the book-- and that can make babysitting junior programmers very expensive).

      OTOH, I can be pretty sure that any Apache server I encounter will support perl CGI. I don't think provisions for server-side Ruby are as common.

      A minor disadvantage to Perl is that distribution of Perl scripts under Windows is inadvisable since it would mean setting up the perl interpreter on each user machine. I think this would be dangerous, since it would provide users with the tools to monkey around where they aren't supposed to go (and I don't trust Windows security to keep the clever and dangerous ones contained). But there are compilers available that will turn well written .pl scripts into reasonably efficienct .exe executables, and for me this has been a good mode of distribution.

      On looking over what I've written, it's evident that I'm weighing production and development environment issues, and not paying a lot of attention to the technical strengths of the languages. I think that is the way it should be: the choice of language is dictated by what will work best in the user's environment, or what will be the most efficient choice in the developer's environment.

    26. Re:Genuine question about perl vs ruby by Jonathan · · Score: 1

      I notice that a most of the languages you mention are descendants/dialects of C. While I don't know off hand how they treat the logical status of 0, I'd understand if the quixotic behavior of C is likely to be preserved in them for backwards compatibility. When you look at truly different languages without the baggage of C -- LISP-based, Smalltalk-based, ML-based -- either the question "is 0 false?" doesn't make any sense and yields an error (because 0 is not a boolean value and the question makes as little sense as "is 0 strawberry-flavored?") or it is true (because 0 is a defined object/atom).

      But certainly I wouldn't *expect* 0 to be false (or even true) in any language. But in any language with boolean values (which even most C-clones have) there is no reason to write code that even cares.

    27. Re:Genuine question about perl vs ruby by Anonymous Coward · · Score: 3, Informative

      the reason is not-invented-here syndrome or a strawman argument against Unicode's ideograph system.

      Asians complain about having to share codepoints for characters (see Han Unification). A lot of people think the whining is mostly racist in nature; however, there are a few legitimate complaints in there, for instance many characters that Han Unification forced to share codepoints actually have different glyphs depending on which language it's written in, even if they all shared a similar source. Unicode's official stance is that the application should identify the language being used and select the correct glyph for that particular character from a font designed for that language (which basically makes it impossible to create a single definitive Unicode font). Explanation of both the glyph problem and the not-invented-here issues here. More on glyphs.

      As for the "major encodings" currently in use, Shift-JIS was basically forced onto them by Microsoft who took their existing JIS encoding (based on ISO-2022) and broke it. There's about 1000 websites of people telling the world just what they thought of that, yet not-invented-here or not, the Shift-JIS system sucks. Consider the fact that it uses two separate non-contiguous sets of codepoints (compare graphs of the non-unicode encodings here.

      It's easy to say "not-invented-here", it's harder to admit that the foreigners had no clue what they were doing and broke it :P

      it could just be a vocal minority

      Of course it's a vocal minority, the majority just want their computers to work.

    28. Re:Genuine question about perl vs ruby by quixoticsycophant · · Score: 1

      Without getting into details, and without providing any reasons whatsoever, I'll make the totally unsubstantiated claim that the vast majority of perl programmers who pick up ruby never go back to perl (willingly, anyway). This was my experience. I'd be interested to see a real poll on this.

      Of course there is at least one obvious reason, which is that Japanese people are cool.

    29. Re:Genuine question about perl vs ruby by thanasakis · · Score: 1

      Hmmm, this looks like a self-fulfilling prophecy. We shouldn't care about the folks who go to ruby from perl for no real reason (except fashion that is) and then bless themselves that they did the right thing, we care about people that found real technical advantages to choose one over the other.

    30. Re:Genuine question about perl vs ruby by Anonymous Coward · · Score: 0

      anyone who believes their language choice was based on real technical advantages is delusional.

    31. Re:Genuine question about perl vs ruby by Goaway · · Score: 1

      I notice that a most of the languages you mention are descendants/dialects of C.

      Yes, this is because most major languages today borrow heavily from C. This is expected. Not doing so is surprising.

      Requiring boolean expression to be explicitly boolean would be understandable. But allowing some values to evaluate to false, but not including 0 among these, is very, very surprising.

      Thus it does not follow any kind of principle of least surprise.

    32. Re:Genuine question about perl vs ruby by belmolis · · Score: 1

      I basically agree with the above, but in the case of Unicode as opposed to Shift-JIS, I think that the Japanese attitude is largely a case of not-invented-here. The Unicode people included people who were quite knowledgable about Chinese characters and well aware of the glyph variants. It just isn't true that only East Asians know about this stuff. Furthermore, the Unicode solution, of making glyph variation a matter of font selection, actually works quite well for almost all applications. I haven't seen anything to indicate that there is a real practical problem here. Ironically, the people for whom it would be desirable to encode the variant glyphs are a small minority of typographers and linguists like myself who want to be able to select glyph variants easily so as to write about them in the same piece of text. The great majority of users have no interest in contrasting variants of same character. So, in spite of the fact that I don't really like Han Unification myself I am not persuaded that the Japanese rejection of Unicode has much to do with practical problems caused by it.

    33. Re:Genuine question about perl vs ruby by belmolis · · Score: 1
      So Ruby is the output of a plan to take a syntax-less language and make it a bit more like a language with, IMO, one of the shittiest syntaxes around?

      Very well put. (I already posted in this discussion so can't mod you up.) If you want a language like Lisp but with more syntactic sugar, try Tcl for a nice, simple scripting language or Haskell for a sophisticated compiled functional language. Perl is not the model to emulate.

    34. Re:Genuine question about perl vs ruby by Breakfast+Pants · · Score: 1

      That it breaks down for threaded applications? (perl solves this very elegantly)

      --

      --

      WHO ATE MY BREAKFAST PANTS?
    35. Re:Genuine question about perl vs ruby by Anonymous Coward · · Score: 0

      Actually, $1 and friends are thread-local in ruby. But please try to come up with other faults without doing any research. I'll be happy to shoot them down too.

    36. Re:Genuine question about perl vs ruby by JanneM · · Score: 1

      It's not just not-invented-here. The ministry of industry did a series of botched "standards" for glyph encoding (the JIS standards) that were widely reviled and largely unused outside the ministry and those who had to deal with them (among other things, the ministry didn't contact people like the culture and education ministry - people who know about this stuff and who decide what is being taught in school about it). When Unicode came along, well, Unicode was a computer thingy and fell under the industry ministry's domain, who assigned the same groups who've done a long, proud job of messing up their own standards in this field and had them give the "Japanese" view on Unicode.

      Nobody liked or wanted the JIS standards before, and so nobody wants Unicode now, and in both cases because the result doesn't map to the real-life requirements for an encoding of the language. AFAIK, Microsoft's Shift-JIS, horrible cludge as it is, was necessary; once MS decided (mistakenly) that the Industry ministry standard is the way to go, they had no choice but to break it, since the original standard is unusable for actual contemporary Japanese.

      The basic problem really is that once again you're stuck with having to mix font and encoding to get the right glyphs; that's exactly what Unicode was designed to get away from. There's two issues: first, some kanji/han glyphs have been conflated because they share the same ancestry and the same meaning, even though they are written differently. The character for "bone" for example, looks different in Japanese and Chinese, but has the same code point in both languages. It's like if the Swedish character "Ä" and Norwegian "Æ" got the same Unicode code point because they are just variations on the same character.

      The other problem is that the ministry "cleaned up" their character lists, so Unicode is missing a lot of old forms - forms which are very common still in names. Going to this new, nifty standard with just the tiny drawback that you can no longer write your own name properly is not exactly going down like wildfire.

      The most general problem, though is that it's not all static. Forms change, new characters come into use. This is something Unicode isn't really set up to deal with (and neither is any of the other encodings used today), and if the country is going to change to a standard encoding, it may make more sense to make something which can.

      --
      Trust the Computer. The Computer is your friend.
    37. Re:Genuine question about perl vs ruby by Anonymous Coward · · Score: 0

      It does not.

    38. Re:Genuine question about perl vs ruby by belmolis · · Score: 1

      The fact that "bone" looks different in Chinese and Japanese is something that can be handled by font choice, as I said before. Personally I'd prefer separate encoding, but as I said, there is no evidence that this is such a big problem. If you really think that it is, explain why rather than just repeating this.

      I don't understand why you think that Unicode can't deal with the need to add characters. There is plenty of space for adding characters and they have already done so. The omission of obscure characters used only for names has nothing to do with Unicode. That is a Japanese government policy. It first came up when the writing system was reformed in the 1950s. At that time the rekisiteki kanazukai "historical kana usage" was abolished, simplified versions of many characters were made official, and the number of characters officially recognized was limited. The official list of characters omitted quite a few obscure characters used in names. This was important because the government will not register a name that contains characters not on the Ministry of Education list, so no Japanese citizen could have such a name as his or her legal name. This created an outcry, so the Ministry eventually relented and added 50 such characters to the list. This issue comes up from time to time with regard to other names. Of course, outside of official documents people can and do use characters not on the official list, and most Japanese characters not on the official list are in use in Chinese or Korean, so even if Unicode restricted itself to the Japanese government's official list most of these characters would be included. Anyhow, Unicode can perfectly well accomodate numerous additional characters if there is reason to do so and is no way responsible for the Japanese government's limitations on which characters can appear in names.

    39. Re:Genuine question about perl vs ruby by Anonymous Coward · · Score: 0

      The fact that "bone" looks different in Chinese and Japanese is something that can be handled by font choice

      But the fact that "black" has different numbers of strokes in different languages cannot, since stroke count is the primary sort for Asian languages, making sorting that much more difficult, since one must identify the language being used and the proper stroke count, instead of a simple comparison of consecutive codepoints.

    40. Re:Genuine question about perl vs ruby by JanneM · · Score: 1

      The fact that "bone" looks different in Chinese and Japanese is something that can be handled by font choice, as I said before. Personally I'd prefer separate encoding, but as I said, there is no evidence that this is such a big problem. If you really think that it is, explain why rather than just repeating this.

      It's a problem in exactly the same way as using different codepages in DOS was a problem. The point of Unicode was to not conflate rendering and codepoints anymore. If all you're offering is the same situation but with longer encoding, then what's the point of switching to it for Japanese?

      As I wrote there hasn't been one unified "government policy". Different ministries have dealt with things in different ways, with predictable confusion (a large part of this is probably a result of ministry turf wars). The JIS on one hand didn't even acknowledge the standard list taught in school, and the current "standard" list is today more of a recommendation; there is no longer a requirement that official documents restrict themselves to the standard list, and names do not need to be restricted to those on the name list today; names are decided on a case-by-case basis.

      The actual result is that Japanese encodings in current use can deal with the characters used without resorting to switching fonts and other stuff you were trying to get away from with Unicode, whereas Unicode could not (I don't know how the situation is today, and it largely doesn't matter, with Unicode having become quite negatively viewed today).

      Again, from the point of view of Japanese users, there is no incentive whatsoever to use Unicode - it doesn't improve one bit on the currently used encodings for Japanese - and plenty of reasons not to.

      --
      Trust the Computer. The Computer is your friend.
    41. Re:Genuine question about perl vs ruby by newt0311 · · Score: 1

      thats the same reason I use python instead of perl. because python is simple. It doesn't have strange wierd syntax and its object model is easy to graps and effectively use. It was designed to be fast to code in and easy to read.

    42. Re:Genuine question about perl vs ruby by belmolis · · Score: 1

      You've shifted to a different question. Sure, if you're only dealing with Japanese, since the Japanese encodings handle Japanese just fine, there is indeed no incentive to shift to Unicode, but that is different from it being impossible or even all that difficult to use Unicode. On the other hand, if you need to handle lots of different writing systems there is incentive to use Unicode since the Japanese encodings are not comprehensive the way Unicode is (except maybe TRON, which is said to be huge but for which I've never seen the actual list of characters).

      The fact that the Japanese government is no longer unified on the joyokanzi and no longer enforces the list rigorously does not change the fact that any limitation on obscure name characters is due to the Japanese government, not Unicode. The Unicode Consortium couldn't care less about how Japanese names are written - that's a purely Japanese issue - and can easily add new characters if there is reason to do so. Unicode has no policy of restricting encoding to characters currently in use or approved by a government. Can you provide an example of a character used for names that has been proposed to the Unicode Consortium for inclusion in Unicode and rejected?

    43. Re:Genuine question about perl vs ruby by JanneM · · Score: 1

      You've shifted to a different question. Sure, if you're only dealing with Japanese, since the Japanese encodings handle Japanese just fine, there is indeed no incentive to shift to Unicode, but that is different from it being impossible or even all that difficult to use Unicode.

      No, it's the same question: Why are Japanese opposed to using Unicode? And it's because it gives no benefits (as you say, you'd have to be choosing encoding and fonts in any case) and gives several disadvantages. That it has been positioned as the successor to the less than well-liked JIS standards would not exactly improve matters even if it had been useful in practice.

      A parallel of sorts would be if the US English part of Unicode had conflated "n" and "ñ", saying that you just choose which one you want by selecting an English or Spanish font, and it's easy enough to switch encodings back and forth if you need to use both in the same document (and why would you ever want to do that?). You'd think the proposal would ever have got off the ground in that case?

      Unicode has no policy of restricting encoding to characters currently in use or approved by a government.

      So why not just fix the whole issue, instead of suggesting that people switch fonts to get the character they want? Give "bone" and all the other "unified" characters their own code points. Just add every old character in use by the Japanese language; the current list is fairly comprehensive, and so I can't imagine it adding more than a few hundred - certainly less than a thousand. Make the issue go away by actually addressing the grievances.

      --
      Trust the Computer. The Computer is your friend.
    44. Re:Genuine question about perl vs ruby by Pseudonym · · Score: 1
      But certainly I wouldn't *expect* 0 to be false (or even true) in any language. But in any language with boolean values (which even most C-clones have) there is no reason to write code that even cares.

      Actually, in George Boole's monograph, 0 is false and 1 is true. You literally can't get more Boolean than that.

      The reason why it makes sense is that it's a limiting case of probability theory. Something with a probability is 0 definitely cannot happen, so it's "false". Something with a probability of 1 will definitely happen, so it's "true".

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    45. Re:Genuine question about perl vs ruby by renoX · · Score: 1

      >Having perl as it is, what are the reasons to take a look at ruby.

      Perl as it is, is a big reason to go elsewhere, personally I despise Perl because IMHO it is a language which is beginner-hostile and a maintenability nightmare too: too much stupid #$%^@, TMTWTDI is great for the 'lone programmer' but is very bad when you're trying to maintain someone else code..
      IMHO Perl is a mess, so it encourage people to write messy code too.

      Ruby is like Perl except that it has been build with good taste/elegance in the design..

      Of course, if you're an expert in Perl, you're used to Perl's quirkiness and you don't see it anymore, but myself I'm average Perl programmer and when I help Perl beginners I often curse Perl design, same when I maintain code written by Perl experts which is usually unreadable and to be able to maintain it, I have to rewrite it (with lots of pain) to code readable by beginners, the result usually use a similar or just superior number of lines, so the quirkiness these tricks is just gratuitous..

    46. Re:Genuine question about perl vs ruby by WNight · · Score: 1

      Ruby's syntax *can* be complicated, but only if you're doing something unexpected..

      Normally it's very clean

      def foo x, y = nil
        x + y
      end

      but sometimes you need to write it with glyphs

      def foo(y=nil)
        return(@@x+y)
      end

      They're used (@@, @, and no @) for scope, and () disambiguation. If you use local variables, you don't need scope modifiers. If you reference class variables, you do. Usually you'd use accessors functions rather than accessing the variable directly, so it doesn't come up as much as you'd expect. Similarly, the value of the last expression in a block is used as its return value, an implicit 'return' is only needed to bail out early.

      In Ruby a lot of emphasis is placed on readability. This is through clean code without too many glyphs, but also by keeping functions short. What would be impractical (different parenthesis standards for each line) in C or C++ seems reasonable in Ruby where you write less code. Functional descriptives rather than imperative commands further this. map/collect, inject, etc.

      things = [ ... ] # some huge array
      new_things = things.map {|thing| thing *= 3 }

      For example, as you don't iterate through the array you don't need a counter, or a size, or a check. All you do is declare your collection, your name for individuals, and then the transformation code. That would be 5+ lines of C, more if it had to allocate new_things.

      Further, that Ruby is polymorphic. It'll multiply numbers 2 * 3 = 6, strings "foo" * 2 = "foofoo", etc. If you want it to not be, you can simply add type checking with:

      raise ArgumentError, "I need an integer, not #{var.inspect}" unless var.respond_to? :to_i

      That raises an error, with explanation (and debugging dump of whatever the input was, try that with printf), unless the variable is an integer, or can be turned into one (through .to_i), in which case, we can treat it as such.

      Languages like C++ couldn't become truly polymorphic without templates and compile-time macros and stuff, where you with a hundred lines of declarations manage to turn off type safety appropriately to express your algorithm...

      If you come from Perl you get many of these shortcuts, but as every variable is preceded by a glyph, and those glyphs change depending on context, you get many more little errors.

      @foo = [1,2]; $foo[1] == 2 # One of the confusing Perl gotchas

      Ruby it just shorter, in terms of code elements, than almost anything else I've ever seen, from Lisp to Prolog to Haskel, at 95% of the problem sets.

    47. Re:Genuine question about perl vs ruby by demallien2 · · Score: 1

      Disclaimer - I'm no Perl expert, each time I look at an example, the syntax makes my head hurt, and I leave it be.

      Why would you look at Ruby? Well for me the answer was Rails. I have been able to start developing innovative web apps (not toy on-line stores) very quickly. This is in part thanks to Ruby's ease of use, and partly because Ruby and Rails have two very, very, good books available for them from the Pragmatic Programmers.

      Ruby is also fun to program. Really. It's not just hype. The syntax is nearly syntax free. To this day, after 10 years of professional C programming, I still have to look up how to write the definition of a function type. With Ruby, everything is much more intuitive. You do what seems logical, and it generally does what you want.

      RubyGems make getting libs the easiest thing in the world. gem install some_module_name. There, done. No ./configure, make, sudo make install. No fighting against dependencies.

      The downside of Ruby? Its speed. We can hope that one of these days someone gets around to writing a faster implementation, but until that day, Ruby is not for writing the successor to Gears of War... But then again, how many of us are writing the equivalent of the successor to Gears of War? Not too many. Most of us just want to write command line utils, web apps, that kind of stuff. With today's computers, Ruby's performance is more than adequate for all but the most CPU-intensive tasks....

    48. Re:Genuine question about perl vs ruby by quixoticsycophant · · Score: 1

      Hmmmm, some slashdotters like to reply to imaginary arguments. What made you think I had no real reason? What made you think the others I mentioned had no real reason? My disclaimers were simply meant to express that I didn't have time to get into it (and those reasons would undoubtedly be mentioned on this forum anyway).

    49. Re:Genuine question about perl vs ruby by thanasakis · · Score: 1

      Well, um, my apologies. Maybe I didn't get the tone of your post right. Hope I haven't offended you.

    50. Re:Genuine question about perl vs ruby by Anonymous Coward · · Score: 0

      Take the case of sorting a two dimensional hash. The sort being based on the values of the key "first". In ruby I could write:
        myhash.sort! { |a, b| a["first"] b["first"] }
      I don't think we can write a concise code in any other language (maybe besides lisp).

    51. Re:Genuine question about perl vs ruby by Anonymous Coward · · Score: 0
      a[0] = [1, 2] does exactly what you want -- puts an array [1, 2] in the first element of array a.

      Yes, because $a[0] = [1, 2]; is so different. When coming up with examples, please try to choose ones that prove your point.
    52. Re:Genuine question about perl vs ruby by oliderid · · Score: 1

      Objects...
      I left Perl as my main tool few years ago because of the syntax for objects. It looks more like a hack than the proper way. I still can't fully understand the concept of "Bless". And also exception handling. I couldn't look at my code and think "Ok, It's clean and it looks rock solid. Let's move to a higher level now". I know it is totally biased probably because I had to work on C# and Java projects.

      I still use Perl for quick and dirty script. But the true reason is CPAN (such a marvellous library. It already saved my professional life on several occasions :-)) not perl in itself.

    53. Re:Genuine question about perl vs ruby by jbolden · · Score: 1

      An interesting phenomenon is that most stuff that people perceive as a reason to go to ruby from perl, are available in perl too, but somehow they offer those stuff an novel.

      I think a fair way to put it is this Ruby Perl is quite possibly the most paradigm agnostic language ever used for mainstream programming (OZ for example supports more paradigms but its meant only for teaching). OTOH Perl is horribly inconsistent. What Ruby offers is about 85% of Perl with enough consistency that the 85% is easily learnable and maintainable.

    54. Re:Genuine question about perl vs ruby by jbolden · · Score: 1

      I'm surprised you got that wrong, given how long you've been in the industry. It wasn't C that created this it was assembly for PCs and workstations. Branch on Zero existed for years. Once you had a small number of registers an integer operation which resulted in a zero or non zero followed by an "if" could be best implemented via. a direct branch of zero. C is just making that available to the programmer.

    55. Re:Genuine question about perl vs ruby by try_anything · · Score: 1

      Just out of curiousity, why would the Unicode consortium take their cues from the Japanese government when the government's lists are intentionally, controversially streamlined and Unicode's desire is to be comprehensive?

      I understand there must be controversy and compromises for efficiency when a government is defining a writing system for official use, but I don't understand why Unicode would pay any attention to such an effort. After all, Unicode includes characters for writing systems that have been dead for thousands of years. I bet the Iraqi government doesn't accept birth certificates filled out in cuneiform.

    56. Re:Genuine question about perl vs ruby by Anonymous Coward · · Score: 0

      You have plenty of mumbo jumbo created by computer science folks for computer science folks. I wonder whether you like Java? C#? PHP? JavaScript? Python? Besides the Python dogmas, and the static typing support of Java and C#, there's very little to a "perfect CS language" in there, right? Nonetheless, they are as popular as you will ever get it.

    57. Re:Genuine question about perl vs ruby by sleepingsquirrel · · Score: 1
      ...speed, when you notice that you're losing it, is important.
      Take a look at something like LuaJIT. It can be quite a bit faster than Perl.
    58. Re:Genuine question about perl vs ruby by fatphil · · Score: 1

      Thanks for the recommendation. I've encountered Lua occasionally, and it does look as if it has a lot of potential. Have you actually used Lua and LuaJIT for much yourself - if so, what kinds of things?

      --
      Also FatPhil on SoylentNews, id 863
    59. Re:Genuine question about perl vs ruby by sleepingsquirrel · · Score: 1
      Have you actually used Lua and LuaJIT for much yourself?
      Nope. I'm just a Lua newbie.
    60. Re:Genuine question about perl vs ruby by GCP · · Score: 1

      The most general problem, though is that it's not all static. Forms change, new characters come into use. This is something Unicode isn't really set up to deal with (and neither is any of the other encodings used today), and if the country is going to change to a standard encoding, it may make more sense to make something which can.

      Utter nonsense. There is a standards group ("IRG") set up to add characters to the Universal Character Set. This group is made up of government and industry representatives from all East Asian and some non-Asian countries with an interest in Chinese/Han character standards. This group works with the Unicode Consortium and ISO to extend the UCS. The UCS in turn is the character set used by Unicode.

      There is room for more than a million characters in the UCS. They aren't anywhere close to filling up, and the rate at which the Chinese and Japanese are finding new characters to add ("look, someone 'misspelled' this character one time in a single 600 year old tax form--we MUST add this character to the standard!") has slowed to a crawl. There just aren't that many old documents that haven't yet been crawled through. And none of them will tolerate "creativity" in the creation of new name characters (the source of most Japanese variants), because these days, if you can't enter the name in a gov't database, it's not a legal name.

      I'm not saying that the addition of new characters has stopped, just that the rate has fallen by probably two orders of magnitude, with plenty of room for extension still available. The character set is fully extensible (plenty of room and an active process that continues to extend it with every version), and all Unicode encodings can encode all of the codepoints (assigned and still unused) in the UCS. So the claim that Unicode can't deal with "forms change, new characters come into use" is absurd.

      It's so absurd, in fact, that it's not even one of the complaints the Japanese make. (Although I have heard several Japanese complaints of the form, "well, I don't really know anything about all the technical details, but if Unicode was started by American companies, then it can't handle Japanese properly since Americans couldn't possibly understand the extremely unique nature of all things Japanese...." You may find one of THEM making your complaint.)

      --
      "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  5. wow, I have no idea what that just meant! by tommyhj · · Score: 5, Funny

    This is just one of those stories that us non-linux, non-programmers have absolutely no idea of what means! Which insidentally makes it rather funny to read :-) I mean, adding Lisp to Ruby's SmallTalk?

    1. Re:wow, I have no idea what that just meant! by kruhft · · Score: 4, Informative

      Lisp is the oldest, still in use, high level programming that exists today. It's the core of emacs, and was standardized into Common Lisp in the early 90's. It basically has no syntax other than words and nested parenthesis (() :-), has an extrememly powerful macro system, and a loyal following of elders that hang out in comp.lang.lisp on usenet. As well, the great Emacs is basically a lisp interpreter (or Operating System) that happens to have a text editor above it.

      Smalltalk is another high level language where everything is an object. It has syntax, supports many interesting high level concepts like persistance, and has some nice development environments and pseudo OS projects, one of which is called Squeak.

      Ruby is a newer high level language from Japan, that was designed to combine the high level concepts of Lisp, but added some syntax to reduce code verbosity and increase expressiveness. The Lispnicks say this is unnecessary complexity that reduces the power of the language; people that were raised on languages with syntax find the expressiveness more familiar, easy to use and powerful.

      I'm still undecided.

    2. Re:wow, I have no idea what that just meant! by RAMMS+EIN · · Score: 1

      ``Lisp is the oldest, still in use, high level programming that exists today.''

      That's debatable. FORTRAN was there first, but I guess you could argue that it is not a high level programming language. On the other hand, what is Lisp? Common Lisp is from 1984, R5RS (Scheme) is from 1998. That's not exactly old. On the other hand, many features that are in Common Lisp now were already in MacLisp in the 1960s or 1970s, and, of course, the key ideas of Lisp are from the 1950s. However, I have difficulty calling, say, Lisp 1.5 and Common Lisp the same language.

      --
      Please correct me if I got my facts wrong.
    3. Re:wow, I have no idea what that just meant! by babble123 · · Score: 1

      Lisp is the oldest, still in use, high level programming that exists today

      Technically, Fortran (1954) has that honor over Lisp (1958). Source: O'Reilly.

    4. Re:wow, I have no idea what that just meant! by kruhft · · Score: 1

      Yes, Fortran is older as a compiled language, but I was referring to high level as meaning automatic memory management, garbage collection and such, which are synonomous with high level languages of today (aka 4GLs).

    5. Re:wow, I have no idea what that just meant! by kruhft · · Score: 1

      Well, they all *look* the same ;-) Yes, if you want to get into semantics, vocabulary and other language lawyer topics they are massive differences in each and every dialect of Lisp, but they all follow the same essence of lists and cons cells and the other axioms that make any lisp a LISP. See The Roots of Lisp by Paul Graham for a better writeup of what John McCarthy discovered when he 'found' (rather than discovered) Lisp.

    6. Re:wow, I have no idea what that just meant! by toddhisattva · · Score: 1

      Lisp is the most important language you will never use.

    7. Re:wow, I have no idea what that just meant! by Neoncow · · Score: 1

      And gods bless you all for sticking around.

  6. VB is powerful but not respected by TheCybernator · · Score: 1, Interesting

    The power of VB doesn't lies in its methodology or programming techniques. But in ability to churn out an application faster to production. There is always a demand of non-critical business apps that are required for small production cycle. Here nothing can beat VB. Its so easy (i agree with its limitations) to learn. Throw in WIN32 API and it gets even powerful. I had been associated with one of the heaviest apps ever done in VB, running at 80+ locations in US (in late 90s) and is still alive though not supported my Microsoft (VB6).

    I truly respect Java and C++ and others. But for its contributions in business apps VB deserves its due respect.

    Sorry the post went little off-topic. Readers' and moderators' desecration anticipated.

    1. Re:VB is powerful but not respected by Anonymous Coward · · Score: 1, Interesting

      The power of VB doesn't lies in its methodology or programming techniques. But in ability to churn out an application faster to production. There is always a demand of non-critical business apps that are required for small production cycle. Here nothing can beat VB.

      Maybe this was true in the very early 1990s. But not anymore. Python is a far superior language. It's just as easy to learn as VB, you get a far faster development cycle, and your applications are actually portable.

    2. Re:VB is powerful but not respected by Anonymous Coward · · Score: 0

      I'm a huge python fan, and dislike VB as much as the next programmer, but python still hasn't caught up with VB (and its IDE) when it comes to quickly and easily turning out simple GUI apps. I'll admit that this is as much an IDE issue as a language issue, but think the point still stands.

    3. Re:VB is powerful but not respected by Anonymous Coward · · Score: 0

      Hmmmm, have to disagree, VB is pure crap(talking about VB <= 6), shitty language, shitty IDE... I have yet to see a professional made VB6 app, oh and the OCX controls really drove me crazy

      /rant

    4. Re:VB is powerful but not respected by element-o.p. · · Score: 1
      Here nothing can beat VB

      Wanna bet?

      What OS are you developing on? If you only want to use MS products, VB might be ok. However, I've found VB to be a real PITA when working with databases, and VB programs tend to be much, much larger than comparable scripts in other languages.

      On the other hand, you can also write very small, clean applets with Perl or Python--which work just fine on Linux, BSD *and* Windows--and you can even have a pretty GUI for the scripts if you use, for example, Zenity to create your forms (not sure if Zenity works on Windows, though--I've never tried).
      --
      MCSE? No, sir...I don't do Windows. Yes, I am an idealist. What's your point?
  7. why not go all the way? by oohshiny · · Score: 2, Informative

    If you're gonna have a "Ruby inspired by Smalltalk", why not be done with it and give it Smalltalk syntax as well? Smalltalk syntax is great: very readable, very simple. And with Objective C, it has enjoyed some resurgence.

  8. Because you'll end up at Lisp. by Anonymous Coward · · Score: 5, Insightful

    What most people don't realize is that Lisp is the inherent representation of virtually all programming languages. This is even true for languages like C, Java, Smalltalk, and Ruby. We can plainly see this by the very fact that basically every compiler or interpreter for those languages parses the language into an abstract syntax tree. And that's exactly what Lisp is: a textual representation of an AST. It is so powerful because it directly allows the programmer to access and modify what amounts to the AST of his or her program. This is something that a language like C isolates to the compiler, or at best the preprocessor.

    What fewer people realize is that Smalltalk is Lisp with a slightly different syntax. The concepts are basically identical, however. So suppose the Ruby developers do all the hard work needed to switch their language over to a Smalltalk-like syntax. Do you know what will happen next? They'll ask themselves what could be improved next. And the first thing that'll happen is a consideration of making the syntax and semantics of the language more Lisp-like. And that's just because Lisp represents the most inherent aspects of what a programming language is.

    1. Re:Because you'll end up at Lisp. by TheRaven64 · · Score: 2, Interesting

      It is so powerful because it directly allows the programmer to access and modify what amounts to the AST of his or her program. If you want a really good demonstration of this, take a look at Erlang. Erlang has a feature as powerful as Lisp macros called Parse Transforms. The compiler spits out the parse tree as a set of nested tuples and passes this to a user-suppled function. This then returns a transformed version of the parse tree. This has exactly the same power and expressiveness as Lisp Macros. The difference is that every Lisp programmer uses macros, because they are as easy to use as function, while almost no Erlang programmers use Parse Transforms.
      --
      I am TheRaven on Soylent News
    2. Re:Because you'll end up at Lisp. by Anonymous Coward · · Score: 0

      C (and other imperative languages) and Lisp are not comparable. The fact that C expressions are expressed as AST's have no relation whatsoever to the semantics of both languages. AST's are what they are, syntax trees. It is how these syntax trees get evaluated that matters. In C, expressions can have side effects, in Lisp they cannot. As simple as that.

      The person who wrote this, and the people who modded it insightful should go read up on programming language theory.

    3. Re:Because you'll end up at Lisp. by Anonymous Coward · · Score: 0

      It is you who should read up on Lisp and how it has impure features before posting here.

    4. Re:Because you'll end up at Lisp. by bar-agent · · Score: 1
      What most people don't realize is that Lisp is the inherent representation of virtually all programming languages. This is even true for languages like C, Java, Smalltalk, and Ruby. We can plainly see this by the very fact that basically every compiler or interpreter for those languages parses the language into an abstract syntax tree. And that's exactly what Lisp is: a textual representation of an AST.

      You say that like it's a good thing. Look, assembly language is the inherent representation of all code. Assembly language syntax is simple, a textual representation of machine code. It's as powerful as it gets, but no one uses it because it is verbose and doesn't group things into statements, blocks, or data structures that can be easily grokked. It's just a stream of opcodes, with some macros to make things easier.

      Lisp is the same way. Everything's a list, or an AST to use your perspective. Yay, hooray. But it doesn't let you group things, it doesn't let you collect, isolate, and distinguish concepts. It's a mass of words and parens.

      In the same way that assembly is too close to the metal, Lisp is too close to the...not the metal, but to a different kind of machine. It isn't really a language for humans to work with. It isn't a high-level language, syntactically, conceptually.
      --
      i'd hit it so hard, if you pulled me out you'd be the king of britain [bash.org]
    5. Re:Because you'll end up at Lisp. by Tablizer · · Score: 1

      basically every compiler or interpreter for those languages parses the language into an abstract syntax tree. And that's exactly what Lisp is: a textual representation of an AST.

      But a giant tree is too hard for most humans to work with. Other languges may force syntax and block conventions on you, but those conventions make navigating the thing easier. Rather than everyone reinvent their own neighborhood in their own image, we have side-walks, lampposts, mailboxes, hatchmarked crossing areas, road-signs, etc. It encourages a convention. Lisp lacks visual conventions: you have to read everything. Other languages may be ugly compared to Lisp, but that ugliness helps you "see" it better. They have landmarks, like the crusty bearded drunk on the street corner that tells you to turn right one block down.

      I have yet to see a practical demonstration of Lisp's power overwhelming this weak point to justify switching to it. It works great for toy/lab examples, but not so smooth for real-world problems with nitty-gritty conditions and interaction of concepts.

    6. Re:Because you'll end up at Lisp. by calambrac · · Score: 3, Insightful

      I would have to disagree with your statement that Lisp doesn't let you group things. Not only does it let you group things, it lets you write entire languages built specifically for the things you want to group. Macros in Lisp are effectively little compilers that are very easy to write, that let you make whatever language is most useful for working with the concepts you want to "collect, isolate, and distinguish". Combine this with CLOS and generic and functional programming techniques, and you have one of the best languages around for dealing with concepts at a very high level.

      Lisp has its weaknesses, but expressiveness and abstraction are not among them.

    7. Re:Because you'll end up at Lisp. by Anonymous Coward · · Score: 0

      But a giant tree is too hard for most humans to work with. Other languges may force syntax and block conventions on you, but those conventions make navigating the thing easier. Rather than everyone reinvent their own neighborhood in their own image, we have side-walks, lampposts, mailboxes, hatchmarked crossing areas, road-signs, etc. It encourages a convention. Lisp lacks visual conventions: you have to read everything. Other languages may be ugly compared to Lisp, but that ugliness helps you "see" it better. They have landmarks, like the crusty bearded drunk on the street corner that tells you to turn right one block down.

      The parent post gave me an interesting idea. It is true that complex lisp expressions can be hard to interpret because they basically pack a 2D tree structure into a linear representation: lines of code. Would a 2D tree-like visualisation tool make Lisp code easier to read?

      Granted, not everything can benefit from a 2D rendering. Mathematical expressions are best viewed with infix notation. Maybe such a tool would look like an HTML editor that allows you to see a 2D rendering as well as the underlying text of the source code. A feature to toggle different representations for selected subtrees could also be useful.

      Anyonw know if something like this has already been tried?

    8. Re:Because you'll end up at Lisp. by Tablizer · · Score: 1

      Would a 2D tree-like visualisation tool make Lisp code easier to read?

      I doubt it. Many things don't benefit from a tree display. Many things are inharently non-tree in nature. Even in Lisp, you often reference functions or variables defined elsewhere. These references are non-tree in "shape".

    9. Re:Because you'll end up at Lisp. by FrangoAssado · · Score: 1

      Lisp is the same way. Everything's a list, or an AST to use your perspective. Yay, hooray. But it doesn't let you group things, it doesn't let you collect, isolate, and distinguish concepts. It's a mass of words and parens.

      Erm... You should learn about Lisp.

      Lisp is as much a mass of words and parens as Java (or any other mainstream language) is a mass of words and punctuation.

      Common Lisp (as some other Lisp dialects) lets you group concepts and express the same things (classes, objects, functions, closures, etc.) as newer languages.

    10. Re:Because you'll end up at Lisp. by oohshiny · · Score: 1

      What most people don't realize is that Lisp is the inherent representation of virtually all programming languages.

      So is assembly. So is tiny little toggle switches, for that matter. But that doesn't make either a good choice for writing software.

      What fewer people realize is that Smalltalk is Lisp with a slightly different syntax.

      Well, it's actually a subset of Lisp with a different syntax. And both being a subset and using a different syntax make it a better language design.

      Do you know what will happen next? They'll ask themselves what could be improved next.

      Yes, and if they're smart, they will refuse to add gratuitous features or syntax from Lisp; Lisp's power and expressiveness make it a worse language than Smalltalk.

    11. Re:Because you'll end up at Lisp. by Estanislao+Mart�nez · · Score: 1

      Lisp lacks visual conventions: you have to read everything. Other languages may be ugly compared to Lisp, but that ugliness helps you "see" it better. They have landmarks, like the crusty bearded drunk on the street corner that tells you to turn right one block down.

      I program in Scheme and Java almost every day, and I say: bullshit. All that your rant amounts to is a bad rationalization of the fact you're used to reading code in languages like Java, but not in languages like Lisp.

    12. Re:Because you'll end up at Lisp. by try_anything · · Score: 1
      Lisp is the same way. Everything's a list, or an AST to use your perspective. Yay, hooray. But it doesn't let you group things, it doesn't let you collect, isolate, and distinguish concepts.

      No wonder you have a bad impression of Lisp. Whoever taught you Lisp without showing you how to define variables, functions, classes, methods, loops, conditional statements, macros, etc. should be shot. No way to "collect, isolate, and distinguish concepts" indeed. Common Lisp actually has an extremely rich collection of such constructs -- like C++, it borders on being too rich in ways to express program organization.

    13. Re:Because you'll end up at Lisp. by bar-agent · · Score: 1

      I mean syntactically. It has these things, but they all look like nested & indented lists.

      --
      i'd hit it so hard, if you pulled me out you'd be the king of britain [bash.org]
    14. Re:Because you'll end up at Lisp. by oohshiny · · Score: 1

      Combine this with CLOS and generic and functional programming techniques, and you have one of the best languages around for dealing with concepts at a very high level.

      Yes, and the ability to create entirely novel sublanguages on a whim is a big problem because people reading your code won't have a clue what it does.

      Lisp has its weaknesses, but expressiveness and abstraction are not among them.

      No, excessive expressiveness and abstraction are Lisp's weaknesses.

    15. Re:Because you'll end up at Lisp. by MareLooke · · Score: 1

      The fact that you're used to reading Algol style languages has nothing to do with Lisp being harder to read.

      For me an ugly language is a language that's hard to read (and thus maintain) and hard to write. Personally I think Lisp is easier to both read and write than most other languages out there. Lisp doesn't 'force' less conventions on you, it employ different conventions and uses a very different syntax to express them. The fact that you don't know them or fail to understand them doesn't mean they're there.

      Indentation of code in Lisp is very important and tremendously increases readability, and unlike in a lot of other languages, there's only one indentation style and people actually adhere to it (and given Lisp's structure it's easy for an editor to perfectly reindent huge portions of code at once should indentation get messed up one way or the other)

      Lisp might be a textual representation of an AST but it certainly isn't any harder to read or write than any other language, and it definitely isn't more verbose. If my attempts to learn (Common) Lisp have shown anything it's that Lisp code tends to be a lot shorter than the same code in most other languages I know and at the same time a lot more expressive and thus clearer and easier to understand.

  9. I use Common Lisp because of its 'white hot' speed by MarkWatson · · Score: 1

    I love programming in Ruby and use it a lot for both small utilities and some Rails web apps.

    The problem is that Ruby has very poor runtime performance. As a result, I often use Common Lisp (Franz for commercial development, but also LispWorks, and SBCL). What kind of runtime performance will this proposed Lisp (it is all just talk for now) have?

    Common Lisp is a great language. Several years ago, with some great input from the Lisp community, I wrote a free 50 page tutorial "Loving Lisp, or the Savvy Programmer's Secret Weapon" that is a free download from the open content page on my web site.

  10. Implementations (lack of) by Nicolay77 · · Score: 0, Troll

    There is not a good Lisp free implementation that runs on several platforms including Windows and that not makes all the code I write there GPL instead of the license I would like.

    Having said that, I'm really waiting for news of SBCL running in Windows with threading and all.

    However, that's not enough, I would like to have Threads standarised in Lisp and also a GUI for Lisp that's like wxWidgets for C++.

    Also, Emacs sucks, and it's the best IDE there is for Lisp. I know some people are mouse-impaired and live for and by the keyboard, but we Starcraft players know better, we must use both very fast. (I have found myself using the odd and hand twisting keyboard commands of Emacs in more sane software, and I was shocked in awe.)

    So in short: I would like to use Lisp for a lot of projects, but I can't without investing USD$2000+ (and I can't do it for now). And I would like a better IDE.

    Compare that with PHP, Perl, Phyton, Ruby, Java and C++: All of them have non-GPL infecting complete implementations that are available for Windows.

    Notes: I tried wxCL but it didn't compiled out of the box in my mingw instalation. I couldn't make it run at all. ECL is LGPL but as the LGPL requires that code linked statically has also to be under the LGPL, then ECL has a license as infectious as the GPL.

    --
    We are Turing O-Machines. The Oracle is out there.
    1. Re:Implementations (lack of) by pivo · · Score: 1

      Have you looked at PLT Scheme? I'm not sure it meets all your requirements, but I think it might come close enough. http://www.plt-scheme.org/

    2. Re:Implementations (lack of) by Eideewt · · Score: 1

      CLISP? And Emacs has mouse support. You may have to make it work the way you want, but you probably would have had to do that anyway.

    3. Re:Implementations (lack of) by mindstrm · · Score: 1

      "There is not a good Lisp free implementation that runs on several platforms including Windows and that not makes all the code I write there GPL instead of the license I would like."

      What do you mean by the second part of this; are you saying that because you used a GPL compiler, all your code is by default GPL? That's just not true.

    4. Re:Implementations (lack of) by Anonymous Coward · · Score: 0

      PLT Scheme is not Common Lisp, though. To make use of Scheme you have to make use of a lot of SRFIs, which incidentally are named using numbers. Scheme has no standard module system, no standard object system, each implementation has different levels of compliance with R5 and delving too far into PLT Scheme's additions can tie you to the implementation, which sadly does not generate the most-efficient code of the Scheme compilers. The bundled dev tools (drscheme) are nigh useless (and contradicting the original poster, wxWidgets is a piece of shit and a complete non-starter).

      Common Lisp has a lot of standardized infrastructure which could make it suitable for development, except that it has a lot of standardized cruft, it doesn't behave well with threads, there is no free high-performance implementation that works across every important platform (including Windows), and there's no standard FFI with UFI and its ilk not even being able to deal with function pointers because *gasp* not every commercial Common Lisp actually supports function pointers in its FFI. The quality of bindings and their overall integration is pretty lackluster.

      The great thing about Lisp proponents is how that despite twenty years passing since the AI Winter they have butt-all to show for themselves application-wise. For all of its super-awesomeness they never seem to get together and build any applications that anyone wants to use, with the latest craze being *wank* *wank* continuation-oriented web frameworks *wank* *wank*. Their tools are shit, they hardly work outside of UNIX, and the number of applications of Lisp in industry are so small they put the number of commercial games that use it on a website (omg python get more game engines to use it1111 and it's so slow it's banned from interstate highways), and watching them pop up and talk about how shitty C++ and Java are (duh) while lisp derivatives remain horribly impractical and unused is a ceaseless source of entertainment.

      PLT Scheme is pretty good for the size of its dev team, however.

    5. Re:Implementations (lack of) by Wolfbone · · Score: 1

      "There is not a good Lisp free implementation that runs on several platforms including Windows and that not makes all the code I write there GPL instead of the license I would like."

      I know you are trolling - and I won't even bother to address the mouse-brained ignorance of your comments about Emacs etc. - but in case any casual reader might be put off using Common Lisp by it, the above statement is (of course) complete and utter nonsense.

    6. Re:Implementations (lack of) by Nicolay77 · · Score: 1

      You're right in the general sense.

      As other poster said, CLISP is the closest (and only one) Lisp implementation that is even close to my requirements. But if you need to do something outside the Common Lisp Standard in CLISP, you need to use CLISP extensions to the standard, or modify CLISP.
      And if you do that your Lisp code will be dependent on CLISP and if it's dependent on CLISP the CLISP mantainers will claim that your code will need to be under the GPL.

      As the Common Lisp Standard is very old and lacks Threads and some other very useful things like a GUI, is not hard to find yourself in that position, like what happened once with wxCL.

      I know UFFI and other libraries are working on trying to fix that. But right now, it's not there.

      --
      We are Turing O-Machines. The Oracle is out there.
    7. Re:Implementations (lack of) by Nicolay77 · · Score: 1

      And of course, if I would need to write code that only used the Common Lisp Spec, then yes, you would be totally right.

      But somehow I always need to do more esoteric stuff.

      --
      We are Turing O-Machines. The Oracle is out there.
    8. Re:Implementations (lack of) by namekuseijin · · Score: 1

      you were doing just fine, but then:

      "Also, Emacs sucks, and it's the best IDE there is for Lisp. I know some people are mouse-impaired and live for and by the keyboard, but we Starcraft players know better, we must use both very fast."

      Emacs doesn't suck if you know it well and use it the way it's supposed to be used. And an IDE is not a game, nor a programmable text editor with handy programming features is a full IDE.

      --
      I don't feel like it...
    9. Re:Implementations (lack of) by Nicolay77 · · Score: 1

      I use Slime. I like some features of it a lot.

      But I don't like the fact that the history of s-expressions behaves so akwardly after I became used to the way that history of inputs behaves in chat programs like mirc. I can't edit or select something and keep browsing the history, I have to restart. Also selecting and moving text with the mouse is awful. It's so easy with ALL other programs (except Word or Office, of course), that its at least unsettling. You can really feel that it was designed for keyboard-only users and that mouse support was an afterthough.

      Maybe is not Emacs but Slime, but anyway, what else can you use for Lisp?

      --
      We are Turing O-Machines. The Oracle is out there.
    10. Re:Implementations (lack of) by namekuseijin · · Score: 1

      Yes, emacs is keyboard driven and mouse support is there just to get newbies into the bandwagon. From there on, they'd better do it emacs-way: via keyboard.

      If you like the notepad-way, you should try the PLT-Scheme environment, which is good enough and with many visual and mouse features. Only for scheme, though...

      --
      I don't feel like it...
  11. Re:I use Common Lisp because of its 'white hot' sp by MarkWatson · · Score: 1

    BTW, I started work on a second edition of "Loving Lisp, or the Savvy Programmer's Secret Weapon" two weeks ago - if you download the PDF for the current edition and like it, then check back in a couple of months.

  12. Re:perlifcation of .NET by hatredman · · Score: 1

    ... make it Spinning Wheel.

    --
    Hatredman
  13. MOD PARENT UP by TheRaven64 · · Score: 3, Insightful
    I have noticed a lot of interest in more interesting languages, like Lisp, Smalltalk, Haskell and Erlang recently from people who a few years ago would have been C, maybe Python programmers. I think a lot of this is due to the fact that people have been introduced (finally) to a relatively mainstream language that goes beyond the slightly-higher-level-than-assembly pure-imperative (with maybe a hint of OO) style that has been common for the last few generations of 'new' languages.

    I don't think I'd use Ruby for anything (except maybe as a teaching language), but I can't deny that it has done a superb job of introducing a new generation of programmers to the benefits of a true high-level language.

    --
    I am TheRaven on Soylent News
  14. It lets the unqualified think they are qualified. by Anonymous Coward · · Score: 0

    Let's suppose you have absolutely no construction experience. But you decide you need a place to put your rakes and shovels, so you build youself a shed. As would be expected, it's a piece of trash. Yeah, you can put your rakes and shovels in there, but it leaks, shingles blow off during storms, and the door frame is warped. So you call in a professional builder to fix it up.

    Do you know what that builder would do? He'd laugh at your piece of shit, and probably refuse to fix it. He'd likely recommend that he just rebuild it from scratch, doing it right. Sure, your shed "performs a useful function" for you. But sometimes it's just better, from a financial standpoint, just to get things done right the first time, which often requires getting a professional involved.

    That's the main problem with VB. It lets those without the necessary understanding build applications that end up being used for some business purpose. But of course, those applications have many flaws, and are often dumped on a professional to fix. It'd have been best if the professional had just done the work from the get go, getting it done properly.

  15. Re:I use Common Lisp because of its 'white hot' sp by Not_Wiggins · · Score: 5, Insightful
    The problem is that Ruby has very poor runtime performance.

    Not so much in response to the post, but to add to it...
    I'm not that old, but I remember the same being said for:
    • C++ compared to C
    • Interpreted compared to Compiled
    • Java compared to C++
    • Servlets compared to CGI
    The list could continue. Just wanted to highlight that "performance" is a short-lived reason to avoid a language. 8)
    --
    Diplomacy is the art of saying, "Nice doggie!" until you can find a rock.
  16. Re:I use Common Lisp because of its 'white hot' sp by The_Wilschon · · Score: 2, Interesting

    Interpreted is still slower than Compiled. Always will be. However, the reason that that problem has *somewhat* gone away is that machines are fast enough now that for *most* situations (UIs being one example), that is not a problem. However, for some problem domains (eg scientific programming), speed will never cease to be an issue. The faster the machines we have, the more we will throw at them. Lattice calculations work better with a smaller lattice spacing, and a faster machine allows a smaller spacing.

    However, most of the interpreted languages which have appeared to resolve their speed issues have done so by some form of on the fly compilation. So yes, ruby could move up to even with the lisps in that way.

    --
    SIGSEGV caught, terminating

    wait... not that kind of sig.
  17. PHP, Perl, Ruby by LuckyStarr · · Score: 1

    I used to do PHP. Black days really. In retrospect I can no longer understand how I could stand it at all. I wasted so much time on idiosyncrasies of the interpreter it hurts to think about it. Ever wondered why your variables suddenly, unexpectedly changed only to find out some nutter activated register_globals on this particular installation. Btw. try this: if ("0" == false) print "This sucks!";

    Then I really discovered Perl5. Played with it before, but never really used it much. Anonymous subs! Closures! Regexp operators! Construct code at runtime! I got to appreciate the simplicity of Perl, though the sigils (\%@) drove me crazy at times. I also enjoyed Perl golfing a lot, though not at a very high level. ;-)

    Then came along Ruby. I loved it instantly! It was how Perl should have been. It also has probably the best introduction to it of ANY language. Check it out, it's worth it.

    Regarding things I really love in Ruby: Blocks and Rubys Object system. Through these two things you can write code without temporary variables. Functional programming sneaked up on me through the backdoor. :-) It's really nice. No side effects. Compare that to PHP!

    Interrestingly - Perl6 got much more like Ruby, and adds tons of new stuff (Rules, etc.) I did not fully explore it, but intend to. I did not find a suitable entry into it yet.

    The only sad thing is, knowing Ruby I today have no strong drive to learn Python though very interresting projects (OLPC) use it. Perhaps OLPC will get my point of entry for Python.

    --
    Meme of the day: I browse "Disable Sigs: Checked". So should you.
    1. Re:PHP, Perl, Ruby by wikinerd · · Score: 1

      if ("0" == false) print "This sucks!";

      The fact that "0" == false returns true is a feature, not a bug. It allows you to rapidly develop some constructs if you know what you are doing. If you want to test for types too, use === as in if ("0" === false).

    2. Re:PHP, Perl, Ruby by LuckyStarr · · Score: 1
      [...] if you know what you are doing.[...]
      See. This is exactly the problem I have with it. You have to know it. I had to remember so much, PHP.net was my most visited website for a long time.

      Using other languages I had to remember less - thus not required to look up the manual as often and thus was more productive. I try to avoid PHP as best as I can. This site goes into more detail if you like.
      --
      Meme of the day: I browse "Disable Sigs: Checked". So should you.
    3. Re:PHP, Perl, Ruby by Mad+Marlin · · Score: 1

      ===? How long until ==== does something almost like numerical equality in some programming language too?

  18. Linux already gets the respect it deserves... by Anonymous Coward · · Score: 0

    "Build a tool even an idiot can use and only an idiot will want to use it."

    And now we know why there will never be a "Linux on the Desktop".

  19. Has matz used lisp? by Generic+Player · · Score: 1

    It sounds like he's just trying to invent a lisp heritage for ruby to appeal to people who don't know what lisp is, but have heard that its "the most powerful language in the universe!". To quote the link:

    * take a simple lisp language (like one prior to CL).
    * remove macros, s-expression.
    * add simple object system (much simpler than CLOS).
    * add blocks, inspired by higher order functions.
    * add methods found in Smalltalk.
    * add functionality found in Perl (in OO way).

    If you follow steps 1-4, you end up with smalltalk minus the methods that get added in step 5. This whole thing could be reduced to:

    * perlify smalltalk

    Claiming that ruby is perlified lisp is contrived and silly. Take lisp and remove s-expressions and now you don't have lisp.

    1. Re:Has matz used lisp? by John+Nowak · · Score: 1

      Claiming that ruby is perlified lisp is contrived and silly. Take lisp and remove s-expressions and now you don't have lisp.

      The authors and users of Dylan would disagree.

    2. Re:Has matz used lisp? by RAMMS+EIN · · Score: 1

      ``Take lisp and remove s-expressions and now you don't have lisp.

      The authors and users of Dylan would disagree.''

      But then again, a lot of people don't consider Dylan to be Lisp, and some have been known to avoid it, because of its syntax.

      --
      Please correct me if I got my facts wrong.
    3. Re:Has matz used lisp? by Generic+Player · · Score: 1

      "The authors and users of Dylan would disagree."

      Only the ones that pretend Dylan is lisp. Are there alot of them? Just because you have a dynamic functional language, doesn't mean its lisp. Dylan is Dylan.

      Even though its trendy to try to attract clueless users by claiming your language has something to do with lisp, the open dylan website doesn't do this. So I question how many of the authors and users pretend its lisp. Dylan was created was to make a language that took what they saw as the good things about lisp (very dynamic, functional), but was completely object oriented and had more limits to the power available (in an attempt to perform better?).

  20. wisp is gweat by cog_nate · · Score: 1

    I weawy wuv wuby.

  21. Sorry, but this is nonsense. by jopet · · Score: 1

    Maybe what is meant is that Ruby's usefulness in many situations is acceptable when compared to LISP. I'd even disagree with that because Ruby lacks what good LISP implementations have: a way to declare types and thus make it easy for the compiler to optimize crucial code and avoid the slowness of dynamic typing. Also its approach to objects is entirely totally different from Ruby's. LISP's option to declare variables and hint the compiler, together with its extensive support for macros is second best when compared to static typing with inference as in OCAML, but still better than nothing of that sort, as in Ruby.

    But while Ruby might be comparably useful for some, it certainly and definitely IS not LISP in nearly any practical meaning of the word "is". The main distinction is the basic feature of LISP: that its main datastructure is at the same time the representation of code. That is probably what is most typical for LISP and totally, utterly absent in Ruby. I am not saying anything here about the usefulness of this property, just that it is this property of the language that makes a LISP a LISP and therefore prevents Ruby from being a LISP.

    One could dive deeper to see a couple of other significant differences in the language design to further argue that Ruby is definitely NOT LISP.

    Personally, when it comes to usefulness, I have nearly totally given up on LISP. Ruby is a nice language, but has serious performance and a couple of other issues. When I want to use a well-designed language that is at the same time practical I use Ocaml (which also has a couple of practical shortcomings). Unfortunately, in most cases, one has to choose a language entirely for pragmatic reasons so one will end with something like *shudder* Java.

    1. Re:Sorry, but this is nonsense. by MenTaLguY · · Score: 1

      Actually, what it means is that we're toying with the idea of implementing a Lisp dialect using the Rubinius runtime. Ruby obviously isn't Lisp, even though the first iterations of it really were just a Scheme dialect (before SmallTalk-isms took over).

      As far as performance issues go, please don't conflate the interpreter with the language. The stable matz interpreter is slow, but YARV (its direct bytecode-based successor), Rubinius, and JRuby look like they'll have considerable performance advantages when they're complete (which is not too far away).

      So far as pragmatic issues go, if you're thinking about Java, I'd definitely give JRuby a look too. Packages up nicely as a JAR, so you can use it anywhere you can use Java, and it's got direct access to all the Java libraries. The only pragmatic issue that won't address is if all your developers only know Java and aren't skilled enough to learn anything else without extensive retraining.

      --

      DNA just wants to be free...
    2. Re:Sorry, but this is nonsense. by jopet · · Score: 1

      OK -- I was referring to the "Ruby already is an acceptable LISP" article here, not the idea of running LISP on top of an Ruby interpreter. I have not the slightest idea how the interpreter is designed, so I cannot say anything about this.

      You are right about not confusing the language with the interpreter, but what I was trying to say is that language can help to make performance optimizations easier or possible at all: the LISP declare mechanism makes this quite explicit and gives the details in the hands of the programmer -- in the case of OCAML the type system and the strict typing make this possible under the hood. I must confess that I do not know the design of Ruby enought to really make a judgement, but my feeling is that some of the nice features make it hard to find a way to do performance optimization well (I'll be happy to be proven wrong here!).

      I already have looked at JRuby and I am really looking forward to how JRuby will develop, especially on top of the Java 6 VM and successors. I'd love to use the benefits of the Java libraries and VM with a nice language like Ruby and without the ugly, anachronistic and verbose language that Java really is.

    3. Re:Sorry, but this is nonsense. by MenTaLguY · · Score: 1

      Ow, and there I go CamelCasing "Smalltalk". Bad habit these days.

      --

      DNA just wants to be free...
  22. Smalltalk is worth checking out.... by BarnabyWilde · · Score: 0

    ....because it's a superset of all dynamic languages available today*.

    If you use it, you get a blinding flash of recognition... then you see how productive you can be when everything is "under one roof".

    By the way, it's "Smalltalk", not "SmallTalk"... the language was created way before conjoined capitalized words ruled the earth.

    BWilde

    (Still, take the other poster's words about Lisp seriously)

  23. Why do you have to stick to scripting? by Generic+Player · · Score: 1

    If you want to do bigger more complex things like writing web servers, why do you want to stick to a scripting language? Regardless, pike is a fast scripting language, and has a C-style syntax. There are webservers written in it (caudium, roxen) that perform well for a scripting language.

    1. Re:Why do you have to stick to scripting? by belmolis · · Score: 1

      I'm always surprised to see how much attention is focussed on a small set of languages, mostly Perl, Python, and Ruby. As the parent says, Pike is very fast with a syntax familiar to C programmers but with the typical virtues of a scripting language. It's a mystery to me why it seems to get so little use outside of the Scandinavian countries and Germany.

      Another neglected language is Tcl. It isn't a speed champion, but on the shootout it comes in ahead of PHP and Ruby, not far behind Perl and Python. (It probably should rank higher. It gets no credit for the chamaneos benchmark simply because that benchmark requires the threads package which was not installed on the machine on which the benchmark was run. That is hardly a defect of Tcl.) It has good, native support for Unicode and is easily extendable in C (it was originally designed as an embedded language). There are quite a few libraries and extensions available, including several object-oriented extensions, and of course it is the native language of the Tk windowing and graphics tookit. It is actually quite Lisp-like, with arguably just the right amount of syntactic sugar. This unusually simple syntax (in comparison with just about everything other than LISP) is a great advantage over Perl with its complex syntax and numerous special cases and tricks, and over Ruby, to the extent that Ruby emulates Perl's icky syntax.

    2. Re:Why do you have to stick to scripting? by Raenex · · Score: 1

      Tcl, hmm, why do people like this language so much? I hate the "everything is a string/macro" approach. It's very hard to look at a piece of code and figure out what's going on. Ad-hoc and confusing syntax everywhere. The object-oriented stuff is tacked on and it shows.

      At first glance I thought it was kinda neat. I liked the string/function interpolation (as opposed to just variable interpolation in Perl). The singly-threaded event system is a nice default. The syntax seemed simple and clean. However, that simple appearance was deceptive if you actually sat down and tried to figure out how to parse an arbitrary line of code.

      And about this whole "scripting" language thing. I have found that scripts far too often turn into applications, and that static typing is needed to keep a handle on the code. Instead of reaching for scripting languages, we should reach for static languages that have script-like features, such as type inference.

  24. rails is not ruby by Generic+Player · · Score: 2, Informative

    "Download a copy of InstantRails and take 60 minutes to create your own full blown webapplication."

    No, make a dinky little toy web app. Even DHH himself doesn't use such blatent exagerations to push rails. Yes its faster than coding everything from scratch, no it is not magic and you can't write anything non-trivial with it in 60 minutes. Do you seriously think anyone anywhere would be using anything but rails if it actually offered a 100x development speed improvement?

    "If you think you can do faster and better in Perl, I bow to you mighty Perl God."

    Catalyst is for perl what rails is for ruby. There's no need to switch to ruby just to get a web framework.

    He asked why to switch to ruby from perl, and you basically ignored ruby altogether and talked about rails. He never even mentioned if he even does web development, how would rails help him if he doesn't do DB driven web development? Ruby itself doesn't offer much over perl, basically just cleaner OO support. If you are already used to perl then I don't think it makes any sense to switch. If you do DB driven web dev and would benefit from rails, then it still makes more sense to stick with perl and just use catalyst (or maypole for trivial 60 minute type stuff) than to switch to ruby just for rails.

    1. Re:rails is not ruby by Nachtfalke · · Score: 1

      I have looked at Catalyst, because I wanted something like Rails for perl, because "back then" I knew perl pretty well, and not much ruby.

      Seeing Catalyst and reading the docs sent me over to Rails and ruby really fast. Because to me, Catalyst looked like a giant mess of options. You have to choose your database abstraction layer, your template engine, and so forth.

      That's not the point of a framework in my mind. To me, a framework is build from good, working pieces, to take away most of the drudgework of web app development. ActiveRecord may not be the best database abstraction there is, ERB might not be the best templating solution. But all those pieces work well together, making working with them fun.

      In contrast, Catalyst to me seems like they throw you a bunch of glue code and say "Here, you figure it out". And since Lazyness is a virtue, I decided to use the pre-figured-out solution ;)

  25. You are missing a group. by Anonymous Coward · · Score: 1, Insightful

    Pragmatic programmer loyalists and newbies picking up the "hot" language are the same thing, just people following fads. They will move on to the next fad when it comes along just like they always have. The fact that rails has so many PHPisms in it and most of the ruby community points to it as a shining example of what ruby can do would indicate that you're right, very few of them are experienced or educated programmers.

    There's also the group being tricked into thinking development speed and the number of characters in your source code are the same thing. This is where the answer to your "how does this help me..." question comes it. It doesn't help you, obviously. But it creates an illusion of faster development, which is what draws people in. Who cares that 90% of your time is spent maintaining the code, not writing it. You can wow people with an upfront display of seemingly fast coding, and ignore the fact that in the long run, that code is useless and needs to be re-written correctly. Its just a cheezy magic trick, but as long as people are jizzing over "criss angel" (why would you pick a porn name for chicks to be a "badass" magician?) they will be jizzing over ruby.

  26. Comment removed by account_deleted · · Score: 0, Troll

    Comment removed based on user account deletion

  27. Try Perl with Win32::OLE by plopez · · Score: 2, Informative

    I beg to differ. I have done VB and found for many purposes Perl is faster, cleaner and easier than VB. Python too is better than VB, and also supports win32 api. As does Ruby (I am currently switching over though I still use Perl as I am very fluent in it). Add in an IDE such as Eclipse or Komodo, and you can do perfectly fine desktop or web apps rapidly.

    is still alive though not supported my Microsoft (VB6).

    I think you meant 'by' not 'my', a typo (it happens to all of us).

    But there's the rub. You never know when MS is going to pull the rug out from under you. Right now its .Net, 3 years from now it could be 'Microsoft McFoo'. OSS languages seem to be more consistent and incremental in thier changes. Major changes changes tend to occur only after much debate and input from the entire community, not just an arbitrary decision by a few marketing types.

    VB6 was horribly crippled. No good object support, reflection, etc. Nothing that made it better than COBOL. .Net was actually the best thing that happened to VB.

    --
    putting the 'B' in LGBTQ+
  28. karma by namekuseijin · · Score: 2, Insightful

    "VB is programming for people who don't really want to program."

    Well, they better do want to program, because that's what they'll be doing most by going for the "ease" of VB: writing patches and more patches to correct bugs, doing excessive maintanence due to lots of improper, parameterless copy-pasting code and lots of rewrites from scratch once the whole thing eventually collapses under its own weight...

    that, or hire real programmers with real tools from the get-go...

    --
    I don't feel like it...
  29. Re:I use Common Lisp because of its 'white hot' sp by Paradise+Pete · · Score: 1
    I started work on a second edition of "Loving Lisp, or the Savvy Programmer's Secret Weapon" two weeks ago

    Does that mean your Ruby AI book is on hold? That's something I'd really like to read.

  30. Re:Just Finish Ruby by Anonymous Coward · · Score: 0

    That's an interesting troll -- you make the claim that Ruby is vaporware even though it's been out for several years, and has a number of "killer apps" already available (Rails being the most obvious). Not very effective, though. You didn't even get a troll mod.

    Keep practicing.

  31. Things I Miss by RAMMS+EIN · · Score: 1

    As a programmer and programming language enthusiast, and being intimately familiar (hmm) with both Ruby and Common Lisp, there are a couple of things I miss in either language.

    In Ruby, I miss macros and the consistent, simple syntax that makes Lisp code so easy to parse and generate And, of course, I miss the Lisp reader. I've created a Lisp reader and writer for Ruby, but they produce (or print) Ruby _data_, not code.

    In Common Lisp, I miss all the practical things that come with Ruby; mostly networking and string manipulation. SBCL just seems much less practical out of the box. That's a pity, because Common Lisp is a great language with many great features (macros, obviously, but CLOS and the condition system are also very powerful).

    I end up writing much more code in Ruby than in Common Lisp, but, knowing Lisp so well, I know what I'm missing, and it hurts. Also, Ruby is _horribly_ slow, and objects take ridiculous amounts of memory (130 bytes for a simple cons cell?).

    --
    Please correct me if I got my facts wrong.
    1. Re:Things I Miss by TheLink · · Score: 1

      Yeah I normally write in Perl and try picking up Lisp every now and then (coz it's great and all that).

      My conclusion? I'm too lazy and stupid. I'll stick to using prefab (CPAN) to build stuff quickly. There's not enough decent Lisp "prefab" out there.

      Sure Lisp makes it easy to parse and generate code, but I still have to write THAT code.

      Whereas with Perl, I can do stuff like:

      use DBI; # prefab for database
      use Net::DHCP::Packet; # prefab for parsing DHCP packets
      use Net::RawIP; # For sending DHCP packets out
      use Socket::MsgHdr; #For figuring out which interface the packets came in from ...

      The great thing about that is, if a decent Perl programmer comes along, they'll figure out the prefab bits rapidly, and they can then focus on the mess that is my code - which fortunately is relatively short because of all the prefab I used.

      Someone else has done the work of documenting and explaining the prefab (which is why I'm using it). The more decent prefab I can use the better.

      --
    2. Re:Things I Miss by RAMMS+EIN · · Score: 1

      You're completely right. Having said that, I would like to point you to CLSQL, which takes database access way beyond what DBI provides. You can do SQL queries...but you can also embed SQL fragments in Lisp code, and even tie database records to CLOS objects and relations to Lisp functions. I'm sure the same functionality exists in some Perl module (as well as in Ruby on Rails), but it's still amazing.

      --
      Please correct me if I got my facts wrong.
  32. FP and multiple-CPU machines by bcrowell · · Score: 1

    We might see an upsurge of interest in functional programming soon because it lends itself to parallelization. Clock speeds are no longer going to improve exponentially, and pure FP languages like Haskell and Erlang are naturally positioned to take advantage of multicore machines. For someone like me, who's interested in grokking FP better for that reason, neither Lisp nor Ruby seem like a natural choice, since both have side-effects. To me, Ruby is just another scripting language: a Perl with a cleaner syntax, and OO not bolted on (but not as mature in its implementation and libraries). If you're interested in general-purpose programming rather than scripting, and you want a programming language that permits both imperative and FP styles, OCaml would seem like the natural choice, because it compiles to very fast native code, and is available in a mature, high-quality, open-source implementation.

    1. Re:FP and multiple-CPU machines by RAMMS+EIN · · Score: 1

      ``We might see an upsurge of interest in functional programming soon because it lends itself to parallelization. Clock speeds are no longer going to improve exponentially, and pure FP languages like Haskell and Erlang are naturally positioned to take advantage of multicore machines. For someone like me, who's interested in grokking FP better for that reason, neither Lisp nor Ruby seem like a natural choice, since both have side-effects.''

      Depends what Lisp you mean, of course. Some Lisps are designed specifically for parallel programming. At any rate, Lisp syntax is a very good fit for parallel programming, as it's a pretty straightforward representation of a (dependency) tree.

      --
      Please correct me if I got my facts wrong.
  33. a better Lisp by namekuseijin · · Score: 1

    "Scheme is not Common Lisp, though."

    Right. My perfect Lisp one be one with Scheme syntax and semantics, CL's performance, Java's libraries and perhaps a little less parenthesis.

    Right now, that would be Haskell, except the library isn't anywhere as big as Java's. yet.

    --
    I don't feel like it...
  34. Rubinius by RAMMS+EIN · · Score: 1

    I think Rubinius is a great project in its own right. Ruby is a very nice language to work with, but the current "official" implementation is terribly slow. Implementing it on top of a Smalltalk VM should give quite a speed boost, which should help make Ruby more useful for more applications. Of course, speed improvements and lots of other Good Things are also planned for Ruby 2.0 (AKA Rite).

    --
    Please correct me if I got my facts wrong.
  35. Great! by RAMMS+EIN · · Score: 1

    Great! The three things I miss most from Ruby are (1) the ability to easily read and write programs (which Lisp provides, both through the built-in reader and printer and by virtue of the syntax being really simple and consistent), (2) macros (which Lisp provides, but can also be easily implemented once you have (1)), and speed (which will probably be severely improved by Rubinius).

    Many Lisp implementations lack practical things like networking and string manipulation functions or integration with Unix. A Lisp dialect with all the functionality of Ruby will certainly have these.

    --
    Please correct me if I got my facts wrong.
  36. Out of the frying pan by Anonymous Coward · · Score: 0

    "And when that program gets too big for them to maintain (or they just don't feel like it anymore) they dump it on their IT area and we're stuck maintaining or converting an app in a technology we wouldn't have chosen that looks like it was designed by a pack of drunken monkeys"

    So what your saying is that they take the code written by one set of non-developers (VB coders) and dump it on another group of non-developers (IT staff).

  37. Performance by Per+Abrahamsen · · Score: 1

    * C++ compared to C

    This is just silly, you can write C programs in C++, and since the back end is usually shared you will end up with identical code. At most you can say that some of the C99 performance features have not yet found their way into C++, but that would go the opposite way of what you suggest. They used to be equally fast, but it has now (temporarily) become possible to write faster code in C.

            * Interpreted compared to Compiled

    True yesterday, true today, true tomorrow. Anyway it is not a language but an implementation issue.

            * Java compared to C++

    Does Java support value semantics for user defined types now? If not, it is still as true as ever. Eliminating unnecessary pointers is a huge win in many (most?) applications, and Java made it impossible by making everything (except build-in types) pointers.

            * Servlets compared to CGI

    Have no idea.

    1. Re:Performance by rastom · · Score: 1
      The point about C++ vs C is that C++ encourages the use (and extension) of existing code. This often results in bulky implementations which run slower than if they'd been written in C directly.

      It is often argued that C++ can be written in such a way as to be as fast as C and as memory efficient, but from my experience in the industry it nearly always results in code which is far larger, harder to debug and not as efficient at a low level. However it does sometimes allow the implementation of higher level algorithms which can contribute to overall efficiency, and imposes some structure which requires more discipline to present in coding directly in C.

    2. Re:Performance by jgrahn · · Score: 1
      C++ compared to C
      This is just silly, you can write C programs in C++, and since the back end is usually shared you will end up with identical code. At most you can say that some of the C99 performance features have not yet found their way into C++, but that would go the opposite way of what you suggest. They used to be equally fast, but it has now (temporarily) become possible to write faster code in C.

      The idea in this case is, I guess, to compare the idiomatic solution to a problem in C to the idiomatic solution in C++. std::copy versus memcpy(), iostreams versus fgets() and so on. Anything else would be pretty pointless.

      Servlets compared to CGI
      Have no idea.

      All I know is, web interfaces (like the one I'm typing this into) are slow and brittle.

  38. Ruby Sucks by Anonymous Coward · · Score: 0

    Maybe one day it wont. But truthfully, I hate Ruby on Rails evangelists more than any other type of evangelist.

  39. Re:I use Common Lisp because of its 'white hot' sp by RAMMS+EIN · · Score: 1
    While I agree with you, I just wanted to point out that there are certain language features that have a lasting impact on the performance of a language, and others that will make it very hard to write the Sufficiently Smart Compiler that gets the good performance that is theoretically possible. Some of the flexibility of Ruby definitely falls in one of these categories. For example, inlining functions does not mix well with being able to redefine functions at run time.

    Years of research have been performed on the topic of generating fast code from dynamic languages, particularly Lisp dialects, but most if not all Lisp implementations will still generate slower code for

    (defun my-gcd (x y)
      (if (< x y) (my-gcd y x)
        (let ((m (mod x y)))
          (if (= m 0) y (my-gcd y m)))))
     
    (loop for x from 1 to 1000000
      do (loop for y from 1 to 1000000
          do (format t "~A~%" (my-gcd x y))))
    than gcc will for

    #include <stdio.h>
     
    int gcd(int x, int y) {
            int m;
     
            if(x < y) return gcd(y, x);
     
            m = x % y;
            if(m == 0) return y;
            else return gcd(y, m);
    }
     
    int main(int argc, char **argv) {
            int x, y;
     
            for(x = 1; x <= 1000000; x++) {
                    for(y = 1; y <= 1000000; y++) {
                          printf("%d\n", gcd(x, y));
                    }
            }
    }
    --
    Please correct me if I got my facts wrong.
  40. Re:I use Common Lisp because of its 'white hot' sp by MarkWatson · · Score: 1

    The Ruby AI book is still a work in progress, but I decided to finish the second edition of the Lisp book first because it is a smaller effort. I have also done about 60% of my professional programming in Common Lisp in the last year, so I have Lisp on my mind. I use Ruby about 25% of the time now, and Java for most of the rest.

    Ruby does rock!

  41. Re:I use Common Lisp because of its 'white hot' sp by RAMMS+EIN · · Score: 1

    ``Common Lisp is a great language. Several years ago, with some great input from the Lisp community, I wrote a free 50 page tutorial "Loving Lisp, or the Savvy Programmer's Secret Weapon" that is a free download from the open content page on my web site.''

    I read the first part of it, up to about the point where you claim that garbage collection is worth a few percent of performance. You might want to add that garbage collection can actually make your program _faster_, as has been demonstrated in some studies.

    --
    Please correct me if I got my facts wrong.
  42. Observation on Lisp... by RexRhino · · Score: 1

    I was writing an application, where I needed to create a simple scripting system for it, and couldn't include any other pre-created scripting system, and I wanted to do it quickly. I was trying to use the absolute minimum code, and minimum overhead for parsing and running the code.

    I realized, when I was done, that I had essentially created a variant of Lisp. It didn't quite have the same Lisp syntax or standard functions or whatnot... but basicly, it was Lisp. Lisp is the type of language that you can re-create by accident!

    And that is why I think that Lisp didn't fade to obscurity, despite not ever being very widely used (Lisp zealots, please don't bother to flame!). Not because Lisp is particularly useful (I can think of a few areas where it would be useful, but it is more useful as ad addition to a standard OO language than an all-in-one tool for software development). But the design of Lisp, both in the language and how it is implemented, is just so *ELEGANT*. It is kind of like the programming language version of Legos - The way it works is just nifty. It has a certain functional simplicity with what it does. It sounds cheesy, but it is very zen.

    And a Lisp interpreter is EASY TO IMPLEMENT!!! I wouldn't even know where to begin to write a C++ compiler... I would have to dust off a few books and really re-learn a lot of stuff that I have long forgot. But Lisp? Dead simple.

    I probably won't ever use Lisp professionally, but I am happy that I had to write some Lisp programs in an AI class back in the day.

    1. Re:Observation on Lisp... by generationxyu · · Score: 1

      Parsing Lisp is even simpler since it has no syntax. I accidentally dropped a pen on my keyboard and it wrote a Lisp parser.

      --
      I mod down pyramid schemes in sigs.
  43. Nice revisionism by ClosedSource · · Score: 1

    I base my comments on what is actually stated. I don't have any way to anticipate the excuses that come later.

    "How much percent of actual professional VB developers is out there? (that is what I meant by "in the industry")"

    Do you know a lot of VB developers writing hobby applications at home that are considered "in the industry"?

  44. Re:I use Common Lisp because of its 'white hot' sp by Anonymous Coward · · Score: 0

    some studies, eh?

  45. Re:Just Finish Ruby by LuckyStarr · · Score: 1
    "Just email me and I'll give you commit rights, (almost) no questions asked."
    Pugs was developed in the same way. As pugs is an undoubted sucess, this is a sensible approach.

    You also got the facts wrong. Geoffrey Grosenbach placed an initial bet on Rubinius which got the whole donation thing started.
    --
    Meme of the day: I browse "Disable Sigs: Checked". So should you.
  46. Patterns are abstractions by Anonymous Coward · · Score: 0

    "MVC isn't an abstraction (abstraction of what, in any case?), it's a compound pattern.

    Your wrong when you say it isn't an abstraction (all patterns are abstractions), but your right to question what it is an abstraction of.

  47. Demanding Performance, anyone? by Anonymous Coward · · Score: 0

    "Lisp has an unfortunate association with AI from the 1980s, but it is not specifically an AI language, it's just a language that makes hard problems like AI possible."

    Prolog

    "The only thing I guess I wouldn't use Lisp for is low level code, like drivers or other "OS level" stuff, because *nix is so heavily C oriented."

    Genera

  48. Forth Performance, anyone? by Anonymous Coward · · Score: 0

    "The basic problem for Lisp is inertia. I'm starting a project right now to work on air-traffic algorithms. In these sorts of research projects, the usual "design -> implement" methodology goes out the window. Instead, you get a loop between design and implementation. You pick some initial algorithms, implement them, simulate the system, use the results of simulation to improve the algorithms, and repeat."

    The same philosophy applies to Forth.

  49. HLL != 4GL by ClosedSource · · Score: 1

    Thus the need for the new term 4GL.

  50. Re:I use Common Lisp because of its 'white hot' sp by MarkWatson · · Score: 1

    Right you are - sometimes when very new objects are GCed, they can be collected faster than malloc'ed memory blocks. Objects that are in older generations can take much longer to GC -- I will update the book text -- thanks.

  51. Compile Ruby to Lisp? by bill_mcgonigle · · Score: 1

    Which Lisp? One which (as most implementations of Common Lisp do these days) appropriately and reasonably gets compared to the output of a C compiler?:

    So, if Ruby is a dialect of Lisp, then it ought to be possible to compile Ruby to Common Lisp and then execute the result on the fast Common Lisp runtime, right?

    That would be awesome - speed and library size are the only things keeping me away from Ruby (same as 3 years ago... still waiting for Ruby on Perl6 VM).

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  52. Just a minor point... by cliveholloway · · Score: 1

    Servlets compared to CGI

    I assume you mean Servlets CGI v. Perl CGI. CGI defines the interface - ie, how the information arrives on the server. CGI scripts/programs can be written in C, sh, Perl, Python, yadda yadda. Just because Perl was the first language to really take off using the CGI, it doesn't mean it's the only one.

    Hell, even PHP uses the CGI :)

    --
    -- Trinity in high heels carrying a whip: The donimatrix - there is no spoonerism
  53. Improving Lisp readability: sweet-expressions by dwheeler · · Score: 1
    Lisp has some nice properties, but it's traditionally had a BIG downside: Lisp code is painfully hard to read. Even Paul Graham admits that Lisp's inability to handle infix operators out-of-the-box is a problem, and thinks that syntactically-important indentation could help make Lisp easier to read.

    I've created a variant of Lisp's native s-expression format called "sweet-expressions". A sweet-expression reader can read typical s-expressions as-is, but it also lets you use indentation, infix, and more traditional function notation. Yet you can still use all of Lisp's macro power, including quasiquotes and so on. Programs are still lists, it's just that the lists are now readable.

    See http://www.dwheeler.com/readable/ for more info.

    --
    - David A. Wheeler (see my Secure Programming HOWTO)
    1. Re:Improving Lisp readability: sweet-expressions by shutdown+-p+now · · Score: 1

      On the bright side, the good thing is that, at least with CL, it is possible to write macros which let you represent the code pretty much the way you want, even doing away with the parentheses.

  54. Linus Torvalds says: by Atario · · Score: 1
    I personally believe that "Visual Basic" did more for programming than "Object-Oriented Languages" did. Yet people laugh at VB and say it's a bad language, and they've been talking about OO languages for decades.
    --
    "A great democracy must be progressive or it will soon cease to be a great democracy." --Theodore Roosevelt
  55. Catalyst fits perl very well. by Generic+Player · · Score: 1

    You seem very confused. Catalyst is flexible, and lets you use whatever components you want. But no, you do not "have to choose" anything, use the defaults if you don't have a reason not to. If you are coming to catalyst having already used mason in other projects, you will probably want to use mason for your views in catalyst, so it lets you do this easily. If you haven't used any templating module before, then just stick with the default TT and get coding.

  56. Development time, anyone? by meiao · · Score: 1
    I've used PHP for years. It was good.
    But if I take a look at my code from then:
    ... that looks like it was designed by a pack of drunken monkeys.
    S.O.B. (136083)

    Yes, I was not a good programmer back then. But as time passed by, I grew up and saw that PHP sucked, even as I tried to use some development standard, I got no help from PHP.

    Then I started to use Rails. Oh my god, how happier I am now. How coding flows better.

    And just to say I'm not fair comparing a framework to a simple language, I've tried CakePHP and it is plainly ugly (compared to Rails).

    I'm yet to try Symphony, that may change my mind. But I really don't think so.

    And finally, about performance, do you have like thousands of users? DO you really need scalability? Then use Java.

  57. In C, expressions can have side effects, in Lisp they cannot. As simple as that.

    Gee, and here I was thinking that (write '(a b c)) and (setf a 'b) had side effects.

  58. Ruby & the Web by dasir · · Score: 1
    I think Ruby is not a good choice for web-development today. Because, you know almost all shared webhosting company doesn't support RoR (yet). compare this Perl & Ruby code:

    #!/usr/bin/perl
    my $test = 123;
    print "result: $test\n";

    #/usr/bin/ruby
    test = "123";
    puts "result: #{test}"
    As you can see, Perl code is better doing this simple things.. I never see large project/software written in Ruby ;-)
    --
    eval($i);$i="',rekcah 6lreP rehtona tsuJ'tnirp=_$";