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.
Smalltalk: Swimming with the fish
71–80 of 87 posts
Re: Smalltalk: Swimming with the fish
#72Earlier 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…
Re: Smalltalk: Swimming with the fish
#73So, 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.
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
#74Earlier 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…
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
#75Earlier 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.
Re: Smalltalk: Swimming with the fish
#76Earlier 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…
Re: Smalltalk: Swimming with the fish
#77Earlier 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?
- 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
#78Earlier 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.
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
#79So, 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…
Re: Smalltalk: Swimming with the fish
#80Earlier 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?