Boston Linux & Unix (BLU) Home | Calendar | Mail Lists | List Archives | Desktop SIG | Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings
Linux Cafe | Meeting Notes | Linux Links | Bling | About BLU

BLU Discuss list archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Go (language)



> On Nov 20, 2009, at 7:10 AM, Jerry Feldman wrote:
>>
>> Certainly I like the garbage collection along with the efficiency of Go,
>> but I don't see it progressing much. Today I see it as kind of a fad
>> language.
>
> Maybe not a fad but definitely a niche.
>
> --Rich P.

I took a look at Go, and was REALLY disappointed.

I wish SOMEONE would make and push a language that actually addresses the
real needs of software development in a pragmatic way. Everyone wants to
design a language that fits their development philosophy, but ignores the
practical realities of software development outside of their view.

Love it or hate it, C and C++ are the most used languages because of their
ability to write generic software. I love C++ but its gets a bad rap from
all the unspecified edge cases around the programming syntax. Using C++ as
basically an object oriented C and exercising restraint on heredity can
create pretty readable, efficient, and maintainable code.

Java, love it or hate it, and its ugly evil clone C#, are good steps
toward a language but are too tied to the VM paradigm to be able to be
used to write device drivers or low level application code. Not to mention
you have to make sure you bundle the VM environment with your app, no
matter how small.

Garbage collection, I'm not a huge fan. It is good for higher level stuff,
but every non-trivial project in which I have been involved, has had
issues with GC memory not going away fast enough or application memory
footprint growing too fast. I'm not saying that it doesn't have a place,
but the idea that it removes ultimate control is not a good thing.

If I could "fix" C++, I would clean up the inheritance issues and be more
rigid and make things like inheriting from two or more of the same base
class an error. I would introduce the notion of an "interface" which is
different than a pure virtual base class. I would make all objects
allocated with new a "subclass" of a common base class. lastly, I would
incorporate Java's "finally."

If I couldn't fix C++, but could fix java, I would add an explicit
"delete" operator as well as a class destructor. I would add an unsigned
char so that you could actually read "E0" into an 8 bit space. I would add
a real "pointer" class that would operate on real memory. I would add the
ability to generate, using the GIT in some fashion, a os specific binary
that can be shipped as an application without the whole bulk of the VM.

So, back to Go. It is yet another language introducing yet another syntax
with yet another set of assumptions about how software "should" be done in
the eyes of people who wrote it. When, what I think the industry really
needs, and maybe you'll agree, is to fix the languages we do use that will
allow us to capitalize on our knowledge and experience, rather then the
de-constructionist replacement of one flawed language with another equally
or more flawed language.

C/C++ is flawed but could be improved. Java is flawed but could be
improved. Go, flawed and may be improved. Where should we focus time and
effort? What do you guys think?








BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org