Why do people keep using C#, Java and C++ despite the fact that both Lisp and Smalltalk are simpler, more powerful and have better programming environments? People hate to change, so they stick with what they know. Also, more support might be another reason; MySQL is a lot more popular than PostgreSQL, it's easier to find a host that supports it, a buddy that knows it, etc.
Actually, ESR is a GNU Emacs power-user. He's written GUD (Grand Unified Debugger) and VC (Version Control) for Emacs. He's been using it since... well, forever basically.
While he's at it, could he also address the myths that Lisp and Smalltalk are slow too? Because they're not, they're pretty fast (though not as fast as C) and they offer vastly improved programming environments which leads to vastly better development time, which C can never hope to achieve.
I don't agree with the "better syntax" part. If anything, the C-like syntax is the most god-awful syntax there is. Let's take a look at a loop in Smalltalk and in C:
Smalltalk: 1 to: 100 do: [:i | "do something with i"]
C: int i; for (i = 1; i
I don't know about you, but the first one reads much better. What's more, it's not special, the #to:do: method is defined in the Integer class. You could of course add your own control structure quite easily by just adding a method. Try that in C.
I don't use Emacs because I don't like vim; I love vim and I absolutely adore its keybinding. However, vim does not have anything nearly as powerful as Emacs Lisp. With Elisp, I can modify my work environment easily and quickly. That for me is worth the weird key bindings.
You got it wrong. C# is strongly and statically typed, while Ruby and Python are strongly and dynamically typed. Get your definitions right, dynamic vs static refers to when type checking is performed, at compile-time or a run-time. Strongly typed vs weakly typed means whether you can freely mix types. C, PHP, TCL are weakly typed, Lisp, C# and Ruby are strongly typed.
I'm guessing that the future of programming lies within languages in which you can easily define a domain specific language to solve your problem. Good languages to write DSLs: Lisp dialects, Ruby, Factor, Smalltalk. When code is data, you have a really powerful language. That's where the future lies IMO.
I'm bi. I use both GNU Emacs and Vim. I do spend more time in Emacs, but I did configure viper-mode. Now, if someone could just have a complete Vim replacement mode for Emacs, I might actually join the Church
If Windows is so bad, why is it included in every PC? Sorry, I like Python, but this kind of argument just isn't good, you come off as a troll. You said that list comprehensions rule, why didn't you give examples of them against what you need to do in Java or work on collections? That would've been a better point.
What I'd like to see: As I enter code in the language, the system does syntax checking and builds the necessary data structures, prompting and possible asking questions about ambiguities and any necessary library functions either not found or not called correctly. In fact, this process might as well be graphical in nature - NeXTstep's Interface Builder perhaps came closest to this in my experience. The code should be runnable immediately, in an interpreted environment - a la Perl/Python/PHP etc.
This is exactly what a Smalltalk system does. Methods are compiled when they are saved, you are made aware of any synactical errors, as well as undeclared variables, unknown messages. And when that method is saved, it is immediatly usable by any part of the system. So you can have an application that calls the #foobar method, but it's not implemented. You leave the application running, you implement #foobar, you save it, you go back to the application, you click the button (or do whatever action to call #foobar) and it will work. Bam! Just like that.
And people (especially some people in the.NET and Java worlds) think that Smalltalk is old and outdated and has been superceeded by their technology. Think again!
A bit off topic, but according to this post, Dave Thomas's next book (of Pragmatic Programmers fame) will talk about the Ruby on Rails framework, the latest craze in the Ruby world.
Use Perl, it has ALL of these.
Oh noes! Not a feature that exists in both Emacs and Vim!
Maybe the idea would be to start with a clean slate, a clean and simple compiler and adding optimizations afterwards.
Why do people keep using C#, Java and C++ despite the fact that both Lisp and Smalltalk are simpler, more powerful and have better programming environments? People hate to change, so they stick with what they know. Also, more support might be another reason; MySQL is a lot more popular than PostgreSQL, it's easier to find a host that supports it, a buddy that knows it, etc.
I sure hope that this new genesis thing will have Blast Processing, because Symantec's apps are usually sluggish
Maybe he's a Visual Enterprise Java Security Architect!
Ruby on Rails makes programmers 10 times more productive than the alternative web development frameworks in Java: myth or reality?
Actually, ESR is a GNU Emacs power-user. He's written GUD (Grand Unified Debugger) and VC (Version Control) for Emacs. He's been using it since... well, forever basically.
While he's at it, could he also address the myths that Lisp and Smalltalk are slow too? Because they're not, they're pretty fast (though not as fast as C) and they offer vastly improved programming environments which leads to vastly better development time, which C can never hope to achieve.
Oops, forgot about the < thing... Well, you know how the C loop would look like.
Smalltalk: 1 to: 100 do: [
C: int i; for (i = 1; i
I don't know about you, but the first one reads much better. What's more, it's not special, the #to:do: method is defined in the Integer class. You could of course add your own control structure quite easily by just adding a method. Try that in C.
I don't use Emacs because I don't like vim; I love vim and I absolutely adore its keybinding. However, vim does not have anything nearly as powerful as Emacs Lisp. With Elisp, I can modify my work environment easily and quickly. That for me is worth the weird key bindings.
You got it wrong. C# is strongly and statically typed, while Ruby and Python are strongly and dynamically typed. Get your definitions right, dynamic vs static refers to when type checking is performed, at compile-time or a run-time. Strongly typed vs weakly typed means whether you can freely mix types. C, PHP, TCL are weakly typed, Lisp, C# and Ruby are strongly typed.
Students won't use all the billion C modules on the net? I agree with the choice of Scheme, but I would also add Python and Ruby to the lot.
I'm guessing that the future of programming lies within languages in which you can easily define a domain specific language to solve your problem. Good languages to write DSLs: Lisp dialects, Ruby, Factor, Smalltalk. When code is data, you have a really powerful language. That's where the future lies IMO.
Is the new cool trend to use a bunch of french words in an english sentence to look smarter?
10$ says somebody asks what Ruby on Rails.
You've done such a wonderful job that it's time you stop now and let something better take over :)
Or maybe try RTFA. He says that he's talking more specifically about the task of editing text. He does say that graphics are another matter.
I'm bi. I use both GNU Emacs and Vim. I do spend more time in Emacs, but I did configure viper-mode. Now, if someone could just have a complete Vim replacement mode for Emacs, I might actually join the Church
If Windows is so bad, why is it included in every PC? Sorry, I like Python, but this kind of argument just isn't good, you come off as a troll. You said that list comprehensions rule, why didn't you give examples of them against what you need to do in Java or work on collections? That would've been a better point.
And people (especially some people in the .NET and Java worlds) think that Smalltalk is old and outdated and has been superceeded by their technology. Think again!
When are programming tools for languages such as C++, Java or C# going to be as advanced as the stuff you get with Smalltalk?
I'm surprised no one has talked about Smalltalk's integrated code browser yet. See how much languages and environments have to learn from Smalltalk?
A bit off topic, but according to this post, Dave Thomas's next book (of Pragmatic Programmers fame) will talk about the Ruby on Rails framework, the latest craze in the Ruby world.