Why do we learn Scheme / Lisp is school, but when we graduate we feel the need to use the Fortran languages like C# and Java? Is the parenthesis that throw people off? I find semicolons at the end of lines fairly archaic.
It sounds superficial but I'd like to hear the SOTC perspectives.
((lambda (x) (x x))
(lambda (x) (x x)))
(lambda (x) (x x)))
04/23/2009 - 07:59
I can't say I know too much about Scheme/Lisp, but what I can offer is this. Maybe it is simply from a learning stand point. You know, often times you end up learning something like MS Basic or HTML to start your learning in the programming world. In the case of basic, it is hardly used anymore, and is by far nearly obsolete, so the only reason you would learn it is for fun or for a basic knowledge into programming. It could also be that people prefer C# or Java, and maybe they have some features and/or frameworks that Lisp does not.
Like I said, I am not as knowledgeable as the other guys in this respect, but that is my 2 cents on it.
04/23/2009 - 08:13
It is because there is no large framework of support and libraries for Scheme that is usable right off the shelf. People use C# because of the existence of the .NET Framework - without that, C# would just be another obscure language. People don't use Scheme because there is no equivalent until you start stepping into the world of foreign procedures and using C/C++ libraries - but by the time you've reached that point in terms of effort, you have already lost 97.6% of your audience.
04/23/2009 - 09:21
I knew it had to be something like that.
04/23/2009 - 10:00
PLT Scheme has a giant code library. The public at large can't use it because it's runtime system and libraries are buggy. The same can be said about C# and the .NET Framework, but people use it anyway.
If someone wanted to get crazy, they could use C# to write a UI, and pipe standard input and output to a Scheme process. Do the interesting work in Scheme and present a fluffy UI.
04/23/2009 - 10:14
Scheme, as a language, is incredibly powerful and flexible, however you don't get a lot 'for free'. If you want a for loop or a while loop, you have to implement it. It gives students great insights into concepts behind languages. In fact, the course I took was called, "Programming Language Concepts".
Scheme definitely has its place, and I've heard of architectures very similar to the one you mentioned (C# front end, Scheme back end). However, in my experience in the real world, time is always the number 1 priority, and when you can use a language with a supporting framework the size of Java and .NET, you can get things done fairly quickly.
04/23/2009 - 15:50
I recently learned that 12 looping constructs were considered for Scheme during one pass of the language spec. It was reduced to 5. Interestingly, I find 'fold' to be the primitive by which you can build most other forms of list iteration. By my recollection, all things from PLC could have been easily implemented with fold.
Scheme does have its place. I just wish there were more organizations who support developers choosing it as a development environment. Speed isn't everything ... and Scheme is likely faster than you think. You likely weren't fast at any language when you started. :)
Add Comment
[language] [/language]
Examples:
[javascript] [/javascript]
[actionscript] [/actionscript]
[csharp] [/csharp]
See here for supported languages.
Javascript must be enabled to submit anonymous comments - or you can login.