Live data from Hacker News

Smalltalk is not a perfect language. What are its shortcomings?

itnext.io

11–20 of 33 posts

Re: Smalltalk is not a perfect language. What are its shortcomings?

#11
post #4

Earlier quoted context omitted.

What is 50MB supposed to be the size-of ? What is the JVM equivalent ?

Let's say that the size we're measuring is the distributable unit. I give you this, and assuming you've got common dependencies, you can run it without building or compiling.

I only have a few minutes worth of knowledge of Smalltalk, but...

  $ cat hello.st
  #!/usr/bin/gst

  Transcript show: 'Hello World!'.
  Transcript cr.
  $ ./hello.st  
  Hello World!
  $ du -b hello.st 
  64 hello.st
That's 64 bytes in a distributable unit. So, what's 50MB?

Even combining the whole of the smalltalk package I used, it's only 18M:

  $ du -bhc $(pacman -Qlq smalltalk | grep -v '/$') | tail -1
  18M total

Re: Smalltalk is not a perfect language. What are its shortcomings?

#12
post #11

Earlier quoted context omitted.

Let's say that the size we're measuring is the distributable unit. I give you this, and assuming you've got common dependencies, you can run it without building or compiling.

I only have a few minutes worth of knowledge of Smalltalk, but... $ cat hello.st #!/usr/bin/gst Transcript show: 'Hello World!'. Transcript cr. $ ./hello.st Hello World! $ du -b hello.st 64 hello.st That's 64 bytes in a distributable unit. So, what's 50MB? Even combining the whole of the smalltalk package I used, it's only 18M: $ du -bhc $(pacman -Qlq smalltalk | grep -v '/$') | tail -1 18M total

Gnu Smalltalk isn't used often (as far as I'm aware). If you use something more common like Pharo or Squeak, the base image includes things like the IDE, window environment, etc. and accounts for the 50MB size.

Edit

I should mention that shipping smalltalk applications generally means shipping the entire image. While there is work to make distributing just the code easier (EG. iceberg mentioned in the article) I don't believe this is yet a common practice. Even in that scenario however, you'll need an image to run that code and it will still be 50+MB.

Re: Smalltalk is not a perfect language. What are its shortcomings?

#13
post #4
post #2

Hello world being 50MB might be one.

What is 50MB supposed to be the size-of ? What is the JVM equivalent ?

It's like you shipped your shell, text editor, debugger and more with every program you made in Java. :D

Re: Smalltalk is not a perfect language. What are its shortcomings?

#15
post #11

Earlier quoted context omitted.

I only have a few minutes worth of knowledge of Smalltalk, but... $ cat hello.st #!/usr/bin/gst Transcript show: 'Hello World!'. Transcript cr. $ ./hello.st Hello World! $ du -b hello.st 64 hello.st That's 64 bytes in a distributable unit. So, what's 50MB? Even combining the whole of the smalltalk package I used, it's only 18M: $ du -bhc $(pacman -Qlq smalltalk | grep -v '/$') | tail -1 18M total

Gnu Smalltalk isn't used often (as far as I'm aware). If you use something more common like Pharo or Squeak, the base image includes things like the IDE, window environment, etc. and accounts for the 50MB size. Edit I should mention that shipping smalltalk applications generally means shipping the entire image. While there is work to make distributing just the code easier (EG. iceberg mentioned in the article) I don'…

> … shipping smalltalk applications generally means …

Is that what Edward Diego meant?

Is Hello world what "smalltalk applications" generally means?

Re: Smalltalk is not a perfect language. What are its shortcomings?

#17

> Seventh, Smalltalk represents a new programming model where the image is a snapshot of the total execution state of the application (including the Smalltalk system). "New"?? Lisp has worked this way since the mid-1960s.

And now MSWin and Ubuntu also sleep.

Re: Smalltalk is not a perfect language. What are its shortcomings?

#18

> First, Smalltalk is dynamically typed. People who believe static typing is a better way to code will view this as a shortcoming. I don’t. "People might raise problem X, but nah" isn't an overly convincing way to argue for dynamic typing.

There is plenty of online content discussing the pros and cons of both static and dynamic types. Discussing it in this post would be tangential, I believe. The authors point is to list shortcomings of Smalltalk, not so much trying to convince us on the advantages of dynamic types.

Re: Smalltalk is not a perfect language. What are its shortcomings?

#19
post #17

> Seventh, Smalltalk represents a new programming model where the image is a snapshot of the total execution state of the application (including the Smalltalk system). "New"?? Lisp has worked this way since the mid-1960s.

And now MSWin and Ubuntu also sleep.

The equivalent would be hibernation, though.

Re: Smalltalk is not a perfect language. What are its shortcomings?

#20
> However, some people mistakenly view this as a shortcoming because they believe that the image prevents you from using your favourite programming tools, like Emacs, GitHub, diff, grep, etc. That’s not actually true.

Talk about... I'm about to go Frank Grimes here. Images are bad because you want a visible and complete description of your program, not some image with details squirreled away in nooks and crannies. It's basic engineering to have an exhaustive and explicit description of what your program is doing.

Smalltalk's main shortcoming is that it offers nothing useful that other languages lack. And it lacks stuff other languages offer. Other languages let you look at the code and see that certain things cannot happen, while looking at a small fraction of the code. Smalltalk doesn't offer this. That's a serious deficiency.

Post reply on HN