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 |
> 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 | |
We also thank MIT for the use of their facilities. |