Can Learning Smalltalk Make You A Better Programmer? 343
Slashdot reader horrido shares an article that "has done more for Smalltalk advocacy than any other article in memory." It was the second-most popular article of the year on the Hewlett Packard Enterprise site TechBeacon (recently passing 20,000 views), with Richard Eng, the founder of the nonprofit Smalltalk Renaissance, arguing that the 44-year-old language is much more than a tool for teachers -- and not just because Amber Smalltalk transpiles to JavaScript for front-end web programming.
It's a superlative prototyping language for startups. It's an industrial-strength enterprise language used by businesses both big and small all around the globe... Smalltalk's implementation of the object-oriented paradigm is so excellent that it has influenced an entire generation of OO languages, such as Objective-C, Python, Ruby, CLOS, PHP 5, Perl 6, Erlang, Groovy, Scala, Dart, Swift, and so on. By learning Smalltalk, you'll understand how all of those useful features in today's OO languages came to be.
The article also argues that Smalltalk pioneered just-in-time compilation and virtual machines, the model-view-controller design paradigm, and to a large extent, even test-driven development. But most importantly, Smalltalk's reliance on domain-specific languages makes it "the 'purest' OO, and one of the earliest... It is often said that programming in Smalltalk or Python is rather like Zen; your mind just flows effortlessly with the task. This is the beauty and value of language simplicity, and Smalltalk has this in spades... Smalltalk, by virtue of its object purity and consistency, will give you a profoundly better understanding of object-oriented programming and how to use it to its best effect."
The article also argues that Smalltalk pioneered just-in-time compilation and virtual machines, the model-view-controller design paradigm, and to a large extent, even test-driven development. But most importantly, Smalltalk's reliance on domain-specific languages makes it "the 'purest' OO, and one of the earliest... It is often said that programming in Smalltalk or Python is rather like Zen; your mind just flows effortlessly with the task. This is the beauty and value of language simplicity, and Smalltalk has this in spades... Smalltalk, by virtue of its object purity and consistency, will give you a profoundly better understanding of object-oriented programming and how to use it to its best effect."
Well rounded. (Score:3, Insightful)
Smalltalk, Forth, LISP, and FORTRAN.
Re: (Score:2)
Re: (Score:2)
Well learning any language makes you a better programmer. Each prorgramming language approaches solving problems differently. After learning that language you now have a new approach to solving a problem under your belt. Then even if you are coding in a different language and you come across a problem that the other language was strong at solving. You know to structure your fictions and procedures in a way to mimic that other language behavior.
So I may be doing OOP but I come across a problem that is ea
Re: (Score:3)
Well learning any language makes you a better programmer.
Only if you're totally new to programming. Once you have your head around the basics: pointers, recursion, and lambda, you're not going to learn much from just toying around with a language.
The only breadth that's useful to a professional is depth multiple times. Spend 3-5 years getting to know the ins and outs of a technical stack, everything the common libraries have to offer, how maintainable code really is, vs what looked cool at the time.
Then do it all again with another tech stack. And another. Th
Re: (Score:2, Funny)
Re: (Score:2)
Z80 Assembly.
Re: (Score:3)
java
depends (Score:3)
on how far down the rope you want to go
if you want to learn the core original idea's of modern programming as some academic / archaeological adventure, yes small talk has a lot to offer as its a very influential language
if you think you are going to magically going to get 100x better at C# or java just by reading some generic summaries of how it works, then no you will not benifit in any such way ... cause the best of such an old language has already been extracted and implemented decades before hand and you already us it
Re: (Score:2)
Re: (Score:3, Interesting)
You probably will learn why newer languages are trying to emulate Smalltalk but also failing and how they could have done better. Smalltalk is a high bar that very few other languages can reach. Smalltalk works because it never started life with the implicit goal of being compatible with older languages or paradigms. C++/C#/Java all screw up because they attempted too hard to be C-like, to be familiar to existing programmers, and to not rock the boat too much. Other scripting languages seem better at thi
Re: (Score:2)
C++/C#/Java all screw
What do you think C++ screws up? I like C++, so I already have a very long list of my own, but nonetheless, 99.9% of "C++ killers" prove to be an appallingly bad replacement.
Re: (Score:3)
C++ is basically not very object oriented, especially with later incarnations which focus on generics instead of real objects. And because it explicitly wants to be compatible with C, you're stuck with a machine oriented model, memory management (too hard to bolt this into a language that has pointers), and so forth. Trying to be a C++ killer is the fault of those languages, C++ generally gets used in area that Smalltalk is not used for. Smalltalk is great for rapid prototyping, C++ gets used by people w
Re: (Score:3)
Re: (Score:3)
on how far down the rope you want to go
I used to program in BASIC, then assembly on an Apple ][
30 years later I've regressed to making new CPU instructions.
In another 30 years I've be making new types of logic gate I guess.
Re: (Score:2)
That's what they were saying about COBOL in the 80's.
That's what they were saying about LISP in the 90's.
That's what they were saying about Eiffel in the 2000's.
It's what diehards say about every dying language.
Re: (Score:2)
Neither COBOL nor LISP are dying or dead.
And Eiffel is a language that has variations like Sather/Sather-K that are very popular in the academic community.
Re: (Score:2)
I learned Eiffel at university. It was interesting, and actually helped me massively in understanding and effectively using less formal languages.
I'd go seriously fucking despair if I had to use it for commercial code though.
Re: (Score:2)
Since you seem to know it, explain me this: I have studied lisp for a while, and I never actually found that magic that suddenly made me much better than I was before. "You can redefine the language!", the ads said. I still don't get it: yes, I can add new functions. I can do the same thing in pretty much _every single other language out there_. Yes, I can pass code blocks to other code blocks. I can do that in other languages too, and only occasionally use it for some small code improvement - it's not a si
Re: (Score:2)
Since you seem to know it, explain me this: I have studied lisp for a while, and I never actually found that magic that suddenly made me much better than I was before. "You can redefine the language!", the ads said. I still don't get it: yes, I can add new functions. I can do the same thing in pretty much _every single other language out there_. Yes, I can pass code blocks to other code blocks. I can do that in other languages too, and only occasionally use it for some small code improvement - it's not a silver bullet that redefines how I write software. So, where is it, that magic you people keep talking about?
In Lisp you can do more than add new functions or pass blocks of code around. Maybe you didn't learn it well.
Re: (Score:3)
Anything you know today is just a bad implementation of Smalltalk (or Lisp.)
That's just utter garbage. If you can't replace $LANGUAGE with Smalltalk/Lisp for technical reasons then $LANGUAGE is actually superior to Smalltalk or Lisp in its niche, not a bad implementation thereof.
So, let's start with the basics. I'd like to see you try to get a smalltalk or Lisp implementation on two of the microcontrollers I use. They're both 8 bitters. One runs at a swift 32MHz (2-5 cycles per instruction) has a generous 2
Re: (Score:2)
And yet they do. Everything keeps trying to recreate Smalltalk, badly. I don't think programmers need to learn from Smalltalk as much as I think programming language designers should be required to know Smalltalk well.
Re: depends (Score:2)
That is so over. Nowadays everyone is trying to i plement LISP badly
That is what makes Ruby so compelling, it took many ideas from Smalltalk, instead of Algol/C/Pascal/Java like all the other wannabe languages like Python.
Re: (Score:2)
And yet they do. Everything keeps trying to recreate Smalltalk, badly. I don't think programmers need to learn from Smalltalk as much as I think programming language designers should be required to know Smalltalk well.
What I think is that smalltalk needs better compilers. Sure, you are thinking performance isnt that big of a deal for 95% of the code... but it is for that 5%, and if you have to use a different language for that 5% then there needs to be a good reason not to also use it for the other 95%.
Re: (Score:2)
Hmm. I have. Multiple languages, even.
Of course, the Smalltalk afficionados were complaining because they'd switched to use the other language. Smalltalk set a lot of precedents and had a positive influence on subsequent OO languages but many of them surpass it.
no, not really (Score:2)
Smalltalk was an amazing language for the 1970's and 1980's. But pretty much all of its features have been incorporated into other languages, so learning Smalltalk won't give you amazing new insights if you know or learn languages like Python or JavaScript.
Having said that, Smalltalk is fun to play around with. Fortunately, there are several excellent, faithful, and free Smalltalk implementations, including Squeak and Pharo [pharo.org]. Just download them and play with them. Smalltalk is simple enough and similar enoug
Re: no, not really (Score:2)
Uhm, Ruby is pretty much based on Smalltalk so I would have to disagree
Hmm, Apparently Squeak is still Shit (Score:2)
If you have to bury the question, we all know the answer.
Like Latin... (Score:2)
Re: (Score:2)
You are terrible wrong.
C has its place as a low level language but it is definitely, without any doubt, not the best language to become a good programmer. If you really believe what you are saying then you are missing a lot about programming.
Re: (Score:2)
I meant *terribly*
Re: (Score:2)
If you really believe what you are saying then you are missing a lot about programming.
That's probably true. I've learned computer programming at the community college and went into IT support upon graduation. I'm currently working my way through an old book to create a Pascal compiler from C (circa 1986). A double challenge to translate old C into modern C and learn Pascal at the same time. The reason I'm learning C is to write Python C extensions and embedded code.
Re: (Score:2)
I see where you are. I'm sure I don't need to tell you this but: keep being curious. It will be a long and very exciting trip.
Re: (Score:2)
C is a good learning language - you will make all your mistakes there and then you know what you shouldn't do to avoid stack overwrites etc. Shoot yourself in the foot 25 times and you will learn how you shouldn't do, then you can continue with a better language.
Re: (Score:2)
I thought you were a professional software developer.
Did you not say so in older posts?
Sorry, but this idea that any language has borrowed from C (except C++) is idiotic. Considering that most languages predate C anyway ...
I guess you are the prime example for a developer who can learn great deals about programming if you would learn SmallTalk, Lisp and/or Prolog.
C does not make you a better programmer. It is useful. And that was it.
Re: (Score:2)
It was complete bullshit of course. They were trying to claim prior knowledge for something fundamentally novel. I'd see them writing C++ code like a C coder and having to keep my mouth shut, because I was just a young whippersnapper with smartarse ideas. I'll admit I could never code in C like
Re: (Score:2)
Just realize that C++ comes with the disadvantages of both C and Object orienting without many of the advantages and then you know that you should have never done C++ at all.
Re: (Score:2)
If it has more disadvantages than C and no upsides, then why aren't there any major, high performance C compilers written in C any more? They've all moved over to C++.
Re: (Score:2)
It was complete bullshit of course.
Actually, not entirely, at least not for the good ones.
For example lots of people did/do OO in C, which can be kind of mushed together using structs, function pointers factory functions and macros. Sure, you don't need C++ to do that. However, every single program and library had it's own pet OO system.
C++ gave syntactic support for it, so a huge amount of the burden of using those systems vanished. It made in that case existing practice, clearer, simpler and safer.
Likewis
Re: (Score:2)
That is simply not true. A lot of OO was there for the picking. ...).
Object based programming, for example, was visible in Xt and Xaw. There is not much difference between object method and QtCall(widget,
Polymorphism was present even in early Unix in filesystem object being used for everything possible to quicksort in C.
Good programmers were using those techniques. Average programmers were unfamiliar with those techniques. Like RAII in the 90s.
The OO revolution was in large part taking those techniques and
Re: (Score:2)
How did functional programming, represented by languages like Clojure, Erlang, Haskell, derive from C???
I didn't write EVERY programming language derived from C. Every language I ever tried derived from C. As for Clojure, Erlang and Haskell, I've heard of Haskell but never tried it.
How did object-oriented programming derive from C?
Umm... C++?
Re: (Score:2)
C++ is not derived from C.
It is derived from Simula and was given a C compatible syntax.
Going so far, that at the time C++ was created, the compiler could compile most C programs. And probably you know it compiled "to C" as it was "only" a cross compiler.
Mind blowing (Score:5, Insightful)
I was surprised, maybe shocked, by how much Smalltalk has contributed to the world[1], how far we have deviated from it[2], and how slowly we are converging to it again[3].
[1] object oriented programming, virtual machine, just-in-time compilation, test-driven development, Model-View-Controller design pattern, object databases
[2] inventing problems by trying to coerce static typed programming languages to behave like dynamic ones (Java, Go, et cetera, I'm looking at you)
[3] by slowly incorporating Smalltalk features into current popular programming languages. Ruby for instance is heavily based on Smalltalk.
Re: (Score:2)
Here's something to keep you wondering: https://en.wikipedia.org/wiki/... [wikipedia.org] (Portable Distributed Objects)
Re: (Score:2)
All those Windows things are just plain awful implementations of OO. It's like the blind men trying to describe an elephant, Microsoft had almost no idea what OO was and yet they went ahead full speed despite their ignorance.
Re: (Score:3)
I watched a presentation given by Kevlin Henney (videos on YT), in which he quotes someone (don't remember who) who claims that COM is one of the purest implementations of OOP ever. COM objects can't interact except through published interfaces, and one cannot even find out what kind of object one is communicating with.
MS has all sorts of faults, but they do actually understand computer science. They also have a very pragmatic side.
Re: Mind blowing (Score:3)
COM came with cross language ABI compatibility; separation of interface and implementation. From this perspective it was a very practical and useful technology. It got pretty damn complicated with ATL and I worked somewhere that created lots of custom objects defined in C++ rather than IDL derived from Microsoft ActiveX controls, but that's a different story. It remains a useful technology on Windows that sometimes makes integration of components from different places easy, especially if you've only got
Re: (Score:2)
All of which happened not because Microsoft wanted to extend their monopoly position to megamonooly positions.
Not any technical quality.
Borland was only slightly cross platform and that was only a half hearted attempt.
Re:Mind blowing (Score:4, Interesting)
Ruby is pretty good, just ignore the Rails crap. It has a big flaw in that it did not make code blocks into first class objects, and then another flaw that it tried to patch this in after the fact with very heavy weight code block objects. So it superficially feels like Smalltalk until you use it enough that you start wanted to just have Smalltalk instead.
Re: (Score:3)
Ruby is terrible for server-side code. It's a toy language with crappy support for exception handling and multi-threading.
Real production code requires structure for maintainability. And you're generally better off when that structure comes from the language itself, rather than coding conventions. Static typing is always going to be more maintainable than noting parameter types in comments. Finding problems at compile time is always going to be better than finding the same problem at runtime. Duck typi
Re: (Score:3)
Messages are fundamentally the problem with OOP. Duck typing is the very thing that makes code maintenance hard. Oh, sure, it can make code easier to get started with, but easy to maintain trumps easy to shit out code any day.
Re: (Score:3)
I don't care about academic arguments. I just know what sucks to maintain, and code without compile-time type checking sucks to maintain.
Sure, no argument, static typing is just the wrong choice for elegant toy programs that no one uses.
It depends... (Score:2)
Re: (Score:2)
It depends upon how poor of a programmer you were previously.
While perhaps not so blunt, that sort of mirrors my thinking. It has to be a really fucked up language to make you worse then before, sure you pick up bad habits but if you're willing to learn you're willing to unlearn. If you're not you're kinda fucked either way. It's another question entirely if it's an efficient way, like could you learn functional or object-oriented programming or some design pattern faster by another language. I'm sure every language has something similar to for example the singleton
Re: (Score:2)
I can remember back when we just called those "global variables".
Ah, how far we've come.
No more then Ruby. (Score:2)
The whole thing sounds and feels great, until you realize that thousands of two and three line methods and no methods larger then 20 lines is not that great.
Plus the tools, like for example, editors, grep, etc. all have to be written from scratch thus lag behind common tools. Though other languages are ( stupidly ) going the same way.
Something like RUby which draws a lot of ideas from Smalltalk works better.
Uh... (Score:5, Interesting)
While Smalltalk clearly has plenty of influences in later languages, from everything I've ever heard or read, the language to learn is LISP--not Smalltalk. I've heard countless stories of people saying it retrains your brain and opens your eyes to new ways of solving problems and that "It's the best language to learn that you'll never actually use." (Because it helps in your normal life.)
It's like learning Latin in school, to help you appreciate English.
Re: (Score:2, Interesting)
While Smalltalk clearly has plenty of influences in later languages, from everything I've ever heard or read, the language to learn is LISP--not Smalltalk. I've heard countless stories of people saying it retrains your brain and opens your eyes to new ways of solving problems and that "It's the best language to learn that you'll never actually use." (Because it helps in your normal life.)
It's like learning Latin in school, to help you appreciate English.
I think you're right on the mark here. AI seems to be the way of the future for coding. LISP is a brilliant language for learning about core ideas in that domain - or many other domains for that matter. The analogy with Latin, and the implicit understanding of grammar and structure, is a good one.
Re: (Score:3, Insightful)
> LISP is a brilliant language for learning about core ideas in that domain
Actually that has not been true for a while now.
Lisp was innovative back in the day for its ability to easily manipulate data structures. After all, Lisp's homoiconic syntax and macros meant that you were essentially manipulating thinly disguised ASTs. AI back then was symbolic in nature (think natural language processing), so Lisp fit the bill really well.
However, the symbolic school of AI has not been dominant for years -- the c
Re: (Score:3)
It's like learning Latin in school, to help you appreciate English.
And much like Latin, it probably encourages large numbers of people to inappropriately coerce things into an inappropriate mould. For example insisting on things like not splitting infinitives.
Re: (Score:2)
If learning something that has had a lot of influence makes us better at a language, presumably we should all be learning Anglo-Saxon, to make us better at English. And maybe it would make us better at English (though I doubt it), but is it the most effective way to make us better?
Interesting, but not practical (Score:2)
I've no regrets. Smalltalk gave me a grounding in OO concepts,TDD and patterns before they became de rigueur and gave me an edge when people coming from more traditional languages were struggling with the new ideas.
But honestly, everything I
Yes, this was my experience as well (Score:5, Interesting)
One of the most interesting things I've been seeing is being able to identify the mental origins of developers who've drunk the Smalltalk Kool-Aid so long ago, it shows up clearly in their designs. All domain concepts as first class objects, no data-only structs, effective pattern use, quality name choices, tight and effective hierarchies but most of all semantic clarity. You can only beat junior devs on the head for so long in code reviews to have them put these things into practice before you realize that they're coming from a wholly different perspective. As we move into a post-OO world with functional programming I can imagine the Haskel et al folks gritting their teeth in the same manner.
Re: (Score:3)
no data-only structs
Hasn't that war already been lost? I thought RESTful APIs pretty much killed it off.
No data-only structs is a beautifully purist vision but also pigeonholes all data into a specific object type. Separating data from the code that does the work with the data means you can easily do different work with the same data.
Shit, look at the whole Big Data arena. Wrap all that data in behavioural constructs and you'd flounder.
I went through this whole design debate/cycle between 1998 and 2000, and haven't looked back
Re: (Score:3)
No (Score:2)
Yes it can, but that doesn't mean it will (Score:5, Insightful)
Learning *ANY* programming language can make someone a better programmer... offer them a new way of looking at how to solve certain types of problems and innovate new and elegant solutions that hadn't occurred to them previously as they learn the idioms of a new programming language.
But like any other programming language, learning it will *NOT* necessarily make you a better programmer, and there's certainly not anything unique to Smalltalk that might make becoming a better programmer after learning it especially likely.
Smalltalk was ahead of its time (Score:5, Interesting)
Its too bad the money men at Xerox at the time (who mostly came from places like Ford and didn't know the first thing about computers or technology) didn't realize just what they had with the Alto, Ethernet, Laser Printer, Smalltalk etc and actually allow the PARC guys to get it out of the lab and into the real world much earlier than they eventually did...
Re:Smalltalk also had major failings ... (Score:3, Informative)
Having developed applications in Smalltalk I can say it had some major failings too. Serious development absolutely required Envy Developer otherwise it was impossible to deploy into a team environment (there are no files to share).
It also was nearly impossible to deploy standalone applications. You had to strip out the development environment, and other objects not necessary for production. Take out too much and sometime later you get a "not implemented" error.
All of its deficiencies could have been fixed
Yes, but who has the time? (Score:5, Insightful)
Though I came to Smalltalk after C++, there is no doubt it informs why all things OO are the way they are. However, who has the time to attain this insight? I programmed in C for three years before learning C++ in the early '90s and there is no doubt that my knowledge of C makes many design decisions behind C++ clear (e.g., how many "young" C++ programmers actually know why the designers of C++ foisted the Rule of three [wikipedia.org] onto the language). But I was too busy keeping up with endlessly changing technologies to learn, say, BCPL [wikipedia.org], to better understand the design decisions behind C.
Run forward, nascent programmers! Your knowledge of (choose your modern language) today will inform the design behind the language you learn ten years from now.
Re: (Score:2)
C mostly serves to make the stupid, annoying stuff in C++ clear, though. The rule of three doesn't come from a C background; it is part of RAII, something that C does not have.
The C background makes clear why we have old-style casts, switch cases with implicit fallthrough, array to pointer decay, and the whole f'ing preprocessor, but we could pretty much have lived just fine without all of that. It was necessary for C++ to gain acceptance during the early days, but now it is mostly just a pain to have to de
Re: (Score:2)
The rule of three doesn't come from a C background; it is part of RAII, something that C does not have.
This statement is wrong [stroustrup.com]. It is precisely because of backward compatibility with C that this is the design of the language. As C structures can be assigned and copied, so must C++ structures.
Re: (Score:2)
Your link does not, in fact, support your assertion. The ability to copy data is a vital necessity for any programming language, and hardly something that can be tracked specifically to C.
It was a very specific design goal of C++ to support user-defined types that are indistinguishable from built-in types (Stroustrup wanted to be able to define a complex number type that acted as if it were a built-in type). For this to be possible, objects must support operator overloading, and must be able to manage their
Re: (Score:3)
T
Maybe not, but... (Score:2)
Kool kids use Erlang OTP!!! (Score:2)
Whoa man that is soo out of date and uncool in any Silicon Valley coffee shop man.
Put Outlaw Techno Psycho itch [youtu.be] on your laptop baby and watch the chicks and groupies sit and watch you code. Erlang is now cool and hip like what rails did to Ruby
Re: Kool kids use Erlang OTP!!! (Score:2)
You are way behind the curve son. Elixir is where the cool kids are. Get with the program!
Better Question (Score:2)
Will Alcohol, LSD, or Caffeine make you a better programmer ?
Re: (Score:2)
That depends on the problem encountered. A shotgun may also be a problem solver in some cases.
Re: (Score:2)
Headlines with questions to which the answer is... (Score:2)
Re: (Score:2)
Smalltalk today is a dinosaur (Score:2)
Re: (Score:2)
Yes, companies take this site seriously. You may not, but the companies who want to target a certain audience do.
.
That aside...
This site used to be a respite, A place for techies to go to get away from those evil advertisers.
Now, it appears this site has sold its soul to those evil advertisers.
Re: (Score:2)
This site used to be a respite, A place for techies to go to get away from those evil advertisers.
That time was before I started using Slashdot, and I lurked for a long time before registering an account. Unless this is your Nth account or you lurked for a spectacularly long time, you never saw it either.
Re: (Score:3)
Look, what makes you guys think this lukewarm whining is even going to register on the slashdot editors? They've been listening to programmer's bitcing and moaning for decades, you're going to have to amp it up if you even want to begin competing.
(You think you've got it bad now? You have no idea what kind of stupid shit Commander Taco could come up with.)
Re: (Score:2)
No, just Silver Bullets (TM).
Every language goes through this fad phase. It gets used for 20 years, then everyone forgets about for the next 20, then everyone jumps on the bandwagon when retro is hip again.
You see this all the time.
i.e. Hyperlink had been (re) invented two times PRIOR to Timothy Lee Burner butchering it.
Alan Kay - Normal Considered Harmful
https://youtu.be/FvmTSpJU-Xc?t... [youtu.be]
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
If "prototyping" means making a rigged demo for suits, Smalltalk won't buy you much, But if you are trying to make an engineering sanity check to make sure you have identified all of the key parts to your proposed system Smalltalk can be awesome.
Re: (Score:2)
Its a pretty bad idea, but its not uncommon for a startup to write something, realize it isn't quite what they need to do, and throw most/all of it away and rewrite it. You don't plan to do that, but you accept that it may happen.
You wouldn't normally plan to do it in another language, but you may switch frameworks or even languages if the original choices end up being a bottleneck as you scale (or a hiring bottleneck if you can't find enough programmers).
Re: (Score:2)
Rational's RequisitePro is written in Smalltalk.
I'm aware that it's possible to ship software written in Smalltalk, but also that it's not exactly a popular language.
Re: (Score:2)
Of course it is. Smalltalk is a live language. JP Morgan for instance is one of the largest users of Smalltalk.
There are companies today making a living out of writing software in Smalltalk. Even successful companies selling implementations of Smalltalk like Cincom.
Smalltalk is not a language from the past. It is the language of the future. Java held us back for years.
Re: (Score:2)
Smalltalk is not a language from the past. It is the language of the future.
So is adoption actually increasing? Or is that just wishful thinking?
Re: (Score:2)
Neither is Clojure, F#, Erlang, Elixir, Elm, Dart, Julia, Rust, Kotlin. Does that mean we shouldn't use these languages?
Not necessarily. But it's important to understand that popularity of your technology of choice - languages included - usually tends to be a positive thing. It means there's a larger community of developers, which in turn means better tools, more libraries and frameworks, and of course, it's also easier to find programmers who are already up to speed with that technology.
While it's true that any decent programmer can learn any language (I've done so several times on the job), it does takes time, meaning fo
Re: (Score:2)
You're actually not much of anything, if your posting history is anything to go by.
You're just jealous that I have a posting history.
Re: (Score:2)
I can find lots of comments from Anonymous Coward here, including many from before you even registered.
Now whether Mr. Anonymous Coward makes those comments worth reading is an entirely different matter.
Re:No. (Score:4, Insightful)
Is that an attmept to be funny or are you retarded?
The fact that no other system adopted the 'image' idea of SmallTalk clearly shows how less the people writing the article and the comments in this story actually have comprehended about SmallTalk.
And Smalltalk does not use special punctuation for its syntax, you must mix it up with something other (C++/Java?)
Except for being OO â" more or less â" the other languages have not really adopted much from SmallTalk. There are still 'programmers' on /. that debate the usefulness of lambdas in Java 8 ...
The good things of SmallTalk besides being OO:
- seamless melding from runtime to language system and OO, global dictionary etc.
- all majour language constructs are represented as objects
- can be queried, augmented, inspected used in reflection etc.
- 'bytecode' can be inspected, transformed etc.
- everything is in the 'image', the IDE is included in your program, unless you strip it
- oo database included, files only used for data exchange
You don't need 'constructors' to set up a complicated UI, you simply create them in the REPL of the IDE, move them where you want them, save the whole running program as an image, next time you 'restart' it, the UI is 'just there'.
SmallTalk is still light years ahead of any other programming system ...
Re: (Score:2)
That's a good flame right there. Almost like it's september again.
Re: (Score:3)
It could be worse. Can you imagine a language that would require invisible white spaces as syntax to ever become popular? lol ... Oh shit wait
Re: (Score:2)
Not if they're decent interviewers.
Shit, I've put code into production in at least eleven languages running on half a dozen different operating systems (let alone OS versions) and at times running in sophisticated application servers. Right now I couldn't get through a good programming job interview on any of them.
Even now I can look at code and tell you the bugs, tell you how to optimise it, tell you how to make it more maintainable and tell you what it'll do. I'd still need days of practice to be able to