Live data from Hacker News

Smalltalk: Swimming with the fish

simberon.blogspot.nl

71–80 of 87 posts

Re: Smalltalk: Swimming with the fish

#71
post #56

Earlier quoted context omitted.

> I even learned Java before giving C++ a try I must admin from all the stuff I saw on the internet I am now scared even try to learn C++. I think it is the looks as a least desireable language to learn for me. Which sucks a bit because there is position at a company I wouldn't mind work for.

Learn C first! You'll understand why C++ is what it is and you'll also get the skills needed to contribute in a lot of open-source projects.

Please don't! Learn Modern C++ instead, otherwise you will be damaged with Cisms in C++ land.

Re: Smalltalk: Swimming with the fish

#72

Earlier quoted context omitted.

Feels like you didn't read the page I linked. You can do all of this: "navigate object graphs, edit them while the program runs, inspect UI elements and modify their behavior interactively, and so on." It just isn't persisted to an image. The OP is implying that Redline is just Smalltalk skin on a Java pig. That's not true, but if your goalposts for Smalltalk are "it must be Pharo" then, yeah, it isn't Pharo. This is…

> Redline is just Smalltalk skin on a Java pig. This is a seriously weird mixed metaphor. Normally the phrase is "lipstick on the pig," which makes a reasonable amount of sense: ostensibly women wear lipstick to look prettier. Pigs are ugly and won't look prettier even when they're wearing a prettying agent. Meanwhile, there's the term 'pigskin,' which is a term for an American football. Finally, pigs already have sk…

What are you, the metaphor compiler? Do I need a fucking permit to write colorfully?

Re: Smalltalk: Swimming with the fish

#73
post #45

So, it's a language for doped up hippies. That's what I got out of that. I recalled Jerry Garcia's stories about scuba diving and how it was better than LSD. I have no clue what it means to live amongst your objects and touch and feel and turn and taste them. That article didn't really explain what that means, but I'll take him at his word.

Here is a concrete story what happened me few weeks before, while I was working on a Nintendo emulator in Pharo. I was playing with Super Mario, and at the end of the 3rd or 4th level my emulator crashed because of some index miscalculation in a sprite drawing method. When this happens in smalltalk, a debugger window pops up, and the cursor is on the problematic line. I fixed the bug in the debugger and pressed proceed then continued my journey to save Princess Peach :).

In a live environment it is easy to make experimentations because you can get very quick feedbacks, and there is no need to switch between modes like development to execution or execution to development. Catching and fixing certain bugs is also easier as I showed before.

I think there is a need for this kind of development, that's why people try implementing code hotswapping and class reloading capabilities in various programming environemnts. But still most of them are just limited workarounds compared to smalltalk where live coding works fine for decades.

Re: Smalltalk: Swimming with the fish

#74
post #69

Earlier quoted context omitted.

No. Worse is Better would explain why browsers would use Smaltalk (or Self) directly, instead of inventing a new programming language. Javascript was probably born out of Not Invented Here. Worse Is Better only contributed the curly braces from C, and the continued use of the first widely known scripting engine. If The Right Thing is already there, Worse Is Better simply doesn't win without exterior help. Worse is be…

I'm gonna disagree. Could you implement Smalltalk environment in browser in two weeks? I'd doubt you could (assuming you are Brendan Eich, circa 1995), realistically. It is a sloppily written language that was perfected later over course of decades. Worse is Better is omnipresent. Linux vs Minix vs BeOS vs Windows is example of Linux despite being bad relatively, simply winning out (on servers) due to its developer b…

> Could you implement Smalltalk environment in browser in two weeks?

You're being unfair: you compare a Javascript interpreter against a Smalltalk environment. Obviously, If I were in a rush, I would start with a simple interpreter first.

Realistically, if you don't really care about performance (I doubt Brendan Eich did at the time), implementing a JavaScript interpreter is neither easier nor harder than implementing a Lisp or Smalltalk or Self interpreter. I maintain that ease of implementation simply was not an influential factor either way.

Therefore, Javascript was invented for other reasons. My best guess is, Brendan Eich wanted his language to be non-intimidating to C, C++, and Java users. Apparently, it worked.

Oh. That is a typical "Worse is Better".

Okay, I retract. "Worse is Better" is an excellent explanation for Javascript. There are just other kinds of short term benefits persisting through time than the mere ease of implementation.

Re: Smalltalk: Swimming with the fish

#75
post #71
post #56

Earlier quoted context omitted.

Learn C first! You'll understand why C++ is what it is and you'll also get the skills needed to contribute in a lot of open-source projects.

Please don't! Learn Modern C++ instead, otherwise you will be damaged with Cisms in C++ land.

Would you like to elaborate on that?

Re: Smalltalk: Swimming with the fish

#76
post #69

Earlier quoted context omitted.

I'm gonna disagree. Could you implement Smalltalk environment in browser in two weeks? I'd doubt you could (assuming you are Brendan Eich, circa 1995), realistically. It is a sloppily written language that was perfected later over course of decades. Worse is Better is omnipresent. Linux vs Minix vs BeOS vs Windows is example of Linux despite being bad relatively, simply winning out (on servers) due to its developer b…

> Could you implement Smalltalk environment in browser in two weeks? You're being unfair: you compare a Javascript interpreter against a Smalltalk environment . Obviously, If I were in a rush, I would start with a simple interpreter first. Realistically, if you don't really care about performance (I doubt Brendan Eich did at the time), implementing a JavaScript interpreter is neither easier nor harder than implementi…

Ok. Then implement a Smalltalk interpreter in a week. And then make it look like Java, because that was Brendan's task.

Re: Smalltalk: Swimming with the fish

#77
post #75
post #71

Earlier quoted context omitted.

Please don't! Learn Modern C++ instead, otherwise you will be damaged with Cisms in C++ land.

Would you like to elaborate on that?

There are lots of C constructs that are considered bad practice in C++

- null terminated strings

- plain vectors

- manual management of resources (memory, files, db connections, locks...)

- C style casts

- pre-processor instead of using inline/const/templates

- the C subset of C++ it is also not 100% compatible with C, there are a few cases with different semantics

- since C99, new language constructs are added via macros, instead of keywords

- no use of namespaces

- lack of safety of parameters that can be changed (pointer vs reference parameters)

The best way to learn C++ is to read books like "Modern C++ Design", "Programming -- Principles and Practice Using C++" and the recently published "Tour of C++".

Re: Smalltalk: Swimming with the fish

#78
post #76

Earlier quoted context omitted.

> Could you implement Smalltalk environment in browser in two weeks? You're being unfair: you compare a Javascript interpreter against a Smalltalk environment . Obviously, If I were in a rush, I would start with a simple interpreter first. Realistically, if you don't really care about performance (I doubt Brendan Eich did at the time), implementing a JavaScript interpreter is neither easier nor harder than implementi…

Ok. Then implement a Smalltalk interpreter in a week. And then make it look like Java, because that was Brendan's task.

Hmm… I think that's pretty much what Brendan did, although he likely started with Self instead of Smalltalk. JavaScript makes a strong emphasis on objects, and had closures from the beginning. Then it has a Java-ish syntax.

As for actually implementing a smaltalk interpreter, it can now be done in 300 lines: http://www.youtube.com/watch?v=EGeN2IC7N0Q (I believe he used Maru http://piumarta.com/software/maru/ ) With current techniques, a language specialist can implement Smalltalk in a day.

I'm not that strong, though. It could take me from a week to a month, depending on how much I need to learn. (Parsing the syntax is easy, but I'm less sure about the semantics.)

Re: Smalltalk: Swimming with the fish

#79
post #45

So, it's a language for doped up hippies. That's what I got out of that. I recalled Jerry Garcia's stories about scuba diving and how it was better than LSD. I have no clue what it means to live amongst your objects and touch and feel and turn and taste them. That article didn't really explain what that means, but I'll take him at his word.

Here is a concrete story what happened me few weeks before, while I was working on a Nintendo emulator in Pharo. I was playing with Super Mario, and at the end of the 3rd or 4th level my emulator crashed because of some index miscalculation in a sprite drawing method. When this happens in smalltalk, a debugger window pops up, and the cursor is on the problematic line. I fixed the bug in the debugger and pressed proce…

If the original article had contained something like what you just wrote, it would have been an interesting and worthwhile article.

Re: Smalltalk: Swimming with the fish

#80

Earlier quoted context omitted.

> Redline is just Smalltalk skin on a Java pig. This is a seriously weird mixed metaphor. Normally the phrase is "lipstick on the pig," which makes a reasonable amount of sense: ostensibly women wear lipstick to look prettier. Pigs are ugly and won't look prettier even when they're wearing a prettying agent. Meanwhile, there's the term 'pigskin,' which is a term for an American football. Finally, pigs already have sk…

What are you, the metaphor compiler? Do I need a fucking permit to write colorfully?

How does anyone downvote "What are you, the metaphor compiler?", regardless of context?
Post reply on HN