Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Lisp and Ruby

kdawson posted more than 44 years ago | from the sittin'-in-a-tree dept.

Programming 336

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."

Sorry! There are no comments related to the filter you selected.

Posted First (-1, Offtopic)

Anonymous Coward | more than 7 years ago | (#17601834)

This is the first post. You fail it!

perlifcation of VB (-1, Offtopic)

Anonymous Coward | more than 7 years ago | (#17601842)

The correct correlate question is: Would the world be a better place if we perlified a Turning Machine?.

Re:perlifcation of .NET (1)

hatredman (740429) | more than 7 years ago | (#17602510)

... make it Spinning Wheel.

VB already gets the respect it deserves... (0, Flamebait)

GotenXiao (863190) | more than 7 years ago | (#17601864)

...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).

Re:VB already gets the respect it deserves... (4, Insightful)

Timesprout (579035) | more than 7 years ago | (#17601932)

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

Re:VB already gets the respect it deserves... (2, Insightful)

marcosdumay (620877) | more than 7 years ago | (#17602090)

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

Re:VB already gets the respect it deserves... (1)

Siberwulf (921893) | more than 7 years ago | (#17602508)

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.)

Re:VB already gets the respect it deserves... (1)

Andrew Kismet (955764) | more than 7 years ago | (#17603260)

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

Re:VB already gets the respect it deserves... (4, Insightful)

hclyff (925743) | more than 7 years ago | (#17602368)

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.

Re:VB already gets the respect it deserves... (3, Insightful)

TheRaven64 (641858) | more than 7 years ago | (#17602438)

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.

Re:VB already gets the respect it deserves... (1, Insightful)

Anonymous Coward | more than 7 years ago | (#17601934)

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.

Re:VB already gets the respect it deserves... (4, Insightful)

S.O.B. (136083) | more than 7 years ago | (#17602088)

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.

Re:VB already gets the respect it deserves... (3, Insightful)

Flodis (998453) | more than 7 years ago | (#17602282)

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.

Re:VB already gets the respect it deserves... (1)

malkavian (9512) | more than 7 years ago | (#17602802)

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.

Re:VB already gets the respect it deserves... (0)

Anonymous Coward | more than 7 years ago | (#17603344)

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...

Re:VB already gets the respect it deserves... (2, Interesting)

Colin Smith (2679) | more than 7 years ago | (#17602420)

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.

 

It lets the unqualified think they are qualified. (0)

Anonymous Coward | more than 7 years ago | (#17602518)

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.

Linux already gets the respect it deserves... (0)

Anonymous Coward | more than 7 years ago | (#17603070)

"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".

Re:VB already gets the respect it deserves... (1, Insightful)

Anonymous Coward | more than 7 years ago | (#17601936)

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).

Re:VB already gets the respect it deserves... (0, Flamebait)

iJed (594606) | more than 7 years ago | (#17602000)

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

Re:VB already gets the respect it deserves... (4, Insightful)

Iamthefallen (523816) | more than 7 years ago | (#17602274)

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

Re:VB already gets the respect it deserves... (1, Flamebait)

Colin Smith (2679) | more than 7 years ago | (#17602328)

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.

Re:VB already gets the respect it deserves... (2, Insightful)

Anonymous Coward | more than 7 years ago | (#17602444)

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?

Re:VB already gets the respect it deserves... (2, Insightful)

X=X+0 (142003) | more than 7 years ago | (#17602868)

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. ;-)

Re:VB already gets the respect it deserves... (2, Interesting)

Snarfangel (203258) | more than 7 years ago | (#17602414)

...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.

Performance, anyone? (2, Insightful)

Lucas.Langa (922843) | more than 7 years ago | (#17601906)

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.

Re:Performance, anyone? (2, Funny)

fatphil (181876) | more than 7 years ago | (#17601992)

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?).

Re:Performance, anyone? (1)

sinserve (455889) | more than 7 years ago | (#17602086)

> 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/ [jwz.org]

Re:Performance, anyone? (2, Funny)

marcosdumay (620877) | more than 7 years ago | (#17602122)

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

Re:Performance, anyone? (4, Interesting)

Lucas.Langa (922843) | more than 7 years ago | (#17602148)

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.

Re:Performance, anyone? (0)

Anonymous Coward | more than 7 years ago | (#17602318)

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...

Re:Performance, anyone? (3, Informative)

pivo (11957) | more than 7 years ago | (#17603332)

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/ [gigamonkeys.com] He leads you through building a streaming MP3 server in Lisp, which is quite fun.

Implementations (lack of) (0, Troll)

Nicolay77 (258497) | more than 7 years ago | (#17602366)

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.

Re:Implementations (lack of) (1)

pivo (11957) | more than 7 years ago | (#17603036)

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/ [plt-scheme.org]

Re:Implementations (lack of) (1)

Eideewt (603267) | more than 7 years ago | (#17603336)

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.

Re:Performance, anyone? (2, Interesting)

bhima (46039) | more than 7 years ago | (#17602560)

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.

Re:Performance, anyone? (1)

pivo (11957) | more than 7 years ago | (#17603142)

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.

Re:Performance, anyone? (1)

billcopc (196330) | more than 7 years ago | (#17602816)

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?!

Re:Performance, anyone? (1)

suv4x4 (956391) | more than 7 years ago | (#17602064)

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.

Re:Performance, anyone? (1)

Lucas.Langa (922843) | more than 7 years ago | (#17602110)

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.

Re:Performance, anyone? (1)

NoTheory (580275) | more than 7 years ago | (#17603048)

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 [debian.org] (i.e. PHP only performs >5x better than ruby on one task), although ruby's memory usage seems to be regularly better.

Re:Performance, anyone? (1)

suv4x4 (956391) | more than 7 years ago | (#17603316)

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.

Re:Performance, anyone? (4, Informative)

Wolfbone (668810) | more than 7 years ago | (#17602152)

"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 [epita.fr]

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

Re:Performance, anyone? (1)

Lucas.Langa (922843) | more than 7 years ago | (#17602202)

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?

Re:Performance, anyone? (5, Insightful)

ravenlock (693538) | more than 7 years ago | (#17602292)

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.

MOD PARENT UP (3, Insightful)

TheRaven64 (641858) | more than 7 years ago | (#17602514)

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.

Re:Performance, anyone? (1)

Nicolay77 (258497) | more than 7 years ago | (#17602404)

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.

Re:Performance, anyone? (2, Interesting)

TheRaven64 (641858) | more than 7 years ago | (#17602376)

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...

Re:Performance, anyone? (1)

Millenniumman (924859) | more than 7 years ago | (#17602858)

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.

Re:Performance, anyone? (2, Interesting)

tacocat (527354) | more than 7 years ago | (#17602614)

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.

Re:Performance, anyone? (1)

The_Wilschon (782534) | more than 7 years ago | (#17602884)

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.

Re:Performance, anyone? (1)

nuntius (92696) | more than 7 years ago | (#17602964)

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++ [epita.fr] .


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.

Re:Performance, anyone? (1)

Lucas.Langa (922843) | more than 7 years ago | (#17603034)

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.

There is an improved VB... (1)

daveling (746446) | more than 7 years ago | (#17601942)

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

Re:There is an improved VB... (1)

fatphil (181876) | more than 7 years ago | (#17602004)

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.

Re:There is an improved VB... (1)

daveling (746446) | more than 7 years ago | (#17602108)

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#.

Re:There is an improved VB... (0)

Anonymous Coward | more than 7 years ago | (#17602244)

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

Re:There is an improved VB... (1)

fatphil (181876) | more than 7 years ago | (#17602290)

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

Re:There is an improved VB... (1)

daveling (746446) | more than 7 years ago | (#17602314)

'Delphi's nothing to do with VB'

Re:There is an improved VB... (1)

fatphil (181876) | more than 7 years ago | (#17602632)

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

Re:There is an improved VB... (1)

Flodis (998453) | more than 7 years ago | (#17602456)

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.

Re:There is an improved VB... (1)

ralphdaugherty (225648) | more than 7 years ago | (#17602774)

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

Re:There is an improved VB... (1)

Arker (91948) | more than 7 years ago | (#17602398)

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

Re:There is an improved VB... (1)

313373_bot (766001) | more than 7 years ago | (#17603030)

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.

Genuine question about perl vs ruby (3, Interesting)

thanasakis (225405) | more than 7 years ago | (#17601978)

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!

Re:Genuine question about perl vs ruby (1)

fatphil (181876) | more than 7 years ago | (#17602032)

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...

Why do you have to stick to scripting? (1)

Generic Player (1014797) | more than 7 years ago | (#17603236)

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 [ida.liu.se] 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.

Re:Genuine question about perl vs ruby (1)

Lucas.Langa (922843) | more than 7 years ago | (#17602052)

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.

Re:Genuine question about perl vs ruby (4, Insightful)

JanneM (7445) | more than 7 years ago | (#17602114)

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.

Re:Genuine question about perl vs ruby (1)

thanasakis (225405) | more than 7 years ago | (#17602188)

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.

Re:Genuine question about perl vs ruby (3, Informative)

morgan_greywolf (835522) | more than 7 years ago | (#17602132)

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 [ruby-lang.org] . 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.

Re:Genuine question about perl vs ruby (2, Insightful)

tacocat (527354) | more than 7 years ago | (#17602660)

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.

Re:Genuine question about perl vs ruby (3, Interesting)

CoughDropAddict (40792) | more than 7 years ago | (#17603294)

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?

Re:Genuine question about perl vs ruby (1, Interesting)

Anonymous Coward | more than 7 years ago | (#17602166)

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..

Re:Genuine question about perl vs ruby (5, Informative)

Jonathan (5011) | more than 7 years ago | (#17602172)

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.

Re:Genuine question about perl vs ruby (1)

Goaway (82658) | more than 7 years ago | (#17602402)

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?

Re:Genuine question about perl vs ruby (1)

Jonathan (5011) | more than 7 years ago | (#17602618)

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.

Re:Genuine question about perl vs ruby (0)

Anonymous Coward | more than 7 years ago | (#17603014)

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.)

Re:Genuine question about perl vs ruby (0)

Anonymous Coward | more than 7 years ago | (#17602500)

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 [ruby-lang.org] is growing fast, so it's probably better to stick with the one you like more while keeping an eye on the other.

Re:Genuine question about perl vs ruby (1)

iwein (561027) | more than 7 years ago | (#17602532)

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.

Re:Genuine question about perl vs ruby (1)

tacocat (527354) | more than 7 years ago | (#17602730)

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.

PHP, Perl, Ruby (1)

LuckyStarr (12445) | more than 7 years ago | (#17602960)

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 [poignantguide.net] 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.

wow, I have no idea what that just meant! (5, Funny)

tommyhj (944468) | more than 7 years ago | (#17602040)

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?

Re:wow, I have no idea what that just meant! (4, Informative)

kruhft (323362) | more than 7 years ago | (#17602890)

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.

VB is powerful but not respected (1, Interesting)

TheCybernator (996224) | more than 7 years ago | (#17602062)

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.

Re:VB is powerful but not respected (1, Interesting)

Anonymous Coward | more than 7 years ago | (#17602126)

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 [python.org] 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.

Re:VB is powerful but not respected (0)

Anonymous Coward | more than 7 years ago | (#17602534)

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.

Re:VB is powerful but not respected (0)

Anonymous Coward | more than 7 years ago | (#17602698)

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

Re:VB is powerful but not respected (1)

element-o.p. (939033) | more than 7 years ago | (#17603152)

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).

why not go all the way? (2, Informative)

oohshiny (998054) | more than 7 years ago | (#17602130)

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.

Because you'll end up at Lisp. (5, Insightful)

Anonymous Coward | more than 7 years ago | (#17602226)

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.

Re:Because you'll end up at Lisp. (2, Interesting)

TheRaven64 (641858) | more than 7 years ago | (#17602556)

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 use Common Lisp because of its 'white hot' speed (1)

MarkWatson (189759) | more than 7 years ago | (#17602312)

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.

Re:I use Common Lisp because of its 'white hot' sp (1)

MarkWatson (189759) | more than 7 years ago | (#17602506)

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.

Re:I use Common Lisp because of its 'white hot' sp (5, Insightful)

Not_Wiggins (686627) | more than 7 years ago | (#17602916)

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)

Re:I use Common Lisp because of its 'white hot' sp (2, Interesting)

The_Wilschon (782534) | more than 7 years ago | (#17602958)

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.

Has matz used lisp? (1)

Generic Player (1014797) | more than 7 years ago | (#17603084)

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.

wisp is gweat (1)

cog_nate (792651) | more than 7 years ago | (#17603086)

I weawy wuv wuby.

Sorry, but this is nonsense. (1)

jopet (538074) | more than 7 years ago | (#17603116)

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.

Smalltalk is worth checking out.... (1)

BarnabyWilde (948425) | more than 7 years ago | (#17603204)

....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)
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?