Mark Chu-Carroll on Go (programming language)
-
And....? What type of software do you write?
"Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg
"A desktop application designed for document collaboration in teams with members who are regularly off-line or who do not share the same network security clearance."
-
C vs C++, i couldn't care less i like them both. (c || c++) vs c# depends on what you want to do with them they all have a purpose. (c || c++ || c#) vs java is where I have a problem. Java is shitty, and so are (most) Java developers.
Ennis Ray Lynch, Jr. wrote:
Unpaid overtime is slavery.
Trollslayer wrote:
Meetings - where minutes are taken and hours are lost.
Amen brother!
The narrow specialist in the broad sense of the word is a complete idiot in the narrow sense of the word. Advertise here – minimum three posts per day are guaranteed.
-
Nemanja Trifunovic wrote:
C++ standard io library
Yeah, that's a disaster, I agree. However I still don't see that as a reason to *completely* drop it from the language.
¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow
Jim Crafton wrote:
However I still don't see that as a reason to *completely* drop it from the language
But it is not "completely" dropped out. They have interfaces and structural subtyping - you just don't explicitelly put the ineritance relashionship in the code. If a type implements all methods declared in an interface, than it is allowed to be used wherever the interface is expected, without the need to explicitely mark it as derived from the interface. Sure, it prevents you from making deep hierarchies, but I salute that.
-
Hear hear! All that and generics -- if they really intend to have them, put them in now(!), don't wait for version 2 like C# did. I don't think they have a deadline or fear of another competitor coming to market before them, so I see no reason not to have all the features they plan on having right from the start. I liked the way D was presented in the pre-1 days: "Here's a language I'm working on. I'd like to get some feedback on what I have so far." rather than: "Here's our new language! Start using it! Oh by the way, we're not done yet."
PIEBALDconsult wrote:
Start using it! Oh by the way, we're not done yet
It's the *nix tradition. And anyone who dares to offer constructive criticism will be met with outrage that people "demand" something from the developers, or that they feel the developer "owe" them something. Which then devolves into a mind numbing pissing contest the likes of which Cro-Magnon man would shudder at. Just looked at the "Go-nuts" mailing list, and one of the posters equates the ability of Java's stack trace function to spitting out some random string via fprintf(stderr, "..."), in defense of the error code only approach. How is the ability to get a complete stack trace comparable to printing out some nonsensical string that may or may not be relevant to the actual error code that was returned?!
¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow
-
Jim Crafton wrote:
No OO. None whatsoever, despite the "basic object-oriented features" claim. This seems ridiculous. OO is an incredibly useful tool when used correctly.
For some purposes, such as GUI. However, Go is intended to be a system language, and OOP is much less useful there.
Jim Crafton wrote:
Personally I think D is a *much* better, more pragmatic choice
Not sure I agree - D makes C++ look simple, plus Andrei Alexandrescu is now working on it and that is not good :)
Nemanja Trifunovic wrote:
For some purposes, such as GUI. However, Go is intended to be a system language, and OOP is much less useful there.
You can’t be serious! Try some time to create network communication server, protocol parser or connection puling without using OOP – the code will triple. Unless if under system programming you mean opening one TSP socket and reading 7 bytes of data.
The narrow specialist in the broad sense of the word is a complete idiot in the narrow sense of the word. Advertise here – minimum three posts per day are guaranteed.
-
Jim Crafton wrote:
However I still don't see that as a reason to *completely* drop it from the language
But it is not "completely" dropped out. They have interfaces and structural subtyping - you just don't explicitelly put the ineritance relashionship in the code. If a type implements all methods declared in an interface, than it is allowed to be used wherever the interface is expected, without the need to explicitely mark it as derived from the interface. Sure, it prevents you from making deep hierarchies, but I salute that.
But I can't inherit behavior, right? Isn't that one of the compelling things about OOP, again, when used/designed properly? It seems goofy, to me at least.
¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow
-
Nemanja Trifunovic wrote:
For some purposes, such as GUI. However, Go is intended to be a system language, and OOP is much less useful there.
You can’t be serious! Try some time to create network communication server, protocol parser or connection puling without using OOP – the code will triple. Unless if under system programming you mean opening one TSP socket and reading 7 bytes of data.
The narrow specialist in the broad sense of the word is a complete idiot in the narrow sense of the word. Advertise here – minimum three posts per day are guaranteed.
Deyan Georgiev wrote:
You can’t be serious! Try some time to create network communication server, protocol parser or connection puling without using OOP – the code will triple
Just to be on the same page - by OOP, I mean the classic definition with class hierarchies. I don't see how the code "will triple" if you don't use them.
-
But I can't inherit behavior, right? Isn't that one of the compelling things about OOP, again, when used/designed properly? It seems goofy, to me at least.
¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow
Jim Crafton wrote:
But I can't inherit behavior, right? Isn't that one of the compelling things about OOP
Not in my book, except in very specific cases such as GUI libraries. Implementation inheritance is one of the worst ways to reuse code.
-
:sigh: 2000 called; it wants it's argument back.
"Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg
I'm still trying to figure out what this is in response to. :~
-
And....? What type of software do you write?
"Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg
I work for an animation company in their research team. We write software components for 3d rendering, we have a home grown high performance graphics library, our own multicasting library, etc., I'm currently working on a high performance server (MFC for UI and C++ otherwise), and on a thread pool in C. Most of our code works extensively with other applications (other application API) like Maya, Quicktime, etc., Performance is very important here and C#, Java and other things stay outside the gate.
“Follow your bliss.” – Joseph Campbell
-
Jim Crafton wrote:
But I can't inherit behavior, right? Isn't that one of the compelling things about OOP
Not in my book, except in very specific cases such as GUI libraries. Implementation inheritance is one of the worst ways to reuse code.
Nemanja Trifunovic wrote:
Implementation inheritance is one of the worst ways to reuse code.
That's gotta be one of the craziest things I've heard (today at least). How are you re-using your code?
- S 50 cups of coffee and you know it's on! Code, follow, or get out of the way.
-
John C wrote:
In my world my customers want the code fast and they want a *lot* of functionality and they want to never lose their data and as far as performance goes as long as they don't notice anything taking a long time they don't care about it.
In my world there are four major types of applications/solutions. System programs, Small Programs, Medium Business - Applications, Monstrous Corporate-Applications. From all these only the second kind is not always performance critical. And except for the system programs, the choice of the particular language has nothing to do with the performance.
The narrow specialist in the broad sense of the word is a complete idiot in the narrow sense of the word. Advertise here – minimum three posts per day are guaranteed.
Don't misunderstand me, performance is *always* important, but it's only important to the degree that it's noticeable. If it's not noticeable to the end user it's not at all important for what I'm doing. This is an important point because I think too many developers get caught in the trap of endlessly optimizing or worrying about every millisecond for things that no one will ever notice in the end.
"Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg
-
"A desktop application designed for document collaboration in teams with members who are regularly off-line or who do not share the same network security clearance."
Interesting. So basically the same boat as me: the only areas where performance matters are areas where the end users actually notice a slowness.
"Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg
-
Don't misunderstand me, performance is *always* important, but it's only important to the degree that it's noticeable. If it's not noticeable to the end user it's not at all important for what I'm doing. This is an important point because I think too many developers get caught in the trap of endlessly optimizing or worrying about every millisecond for things that no one will ever notice in the end.
"Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg
That's a very good point you're making. However, I think that you're completely misunderstood here (at least on this thread). I did get you right to some extent though, and the fact with my workplace is that we need to milk out the best performance. I'm not against .NET either (I'm against Java though, such ugly shit should not exist).
“Follow your bliss.” – Joseph Campbell
-
I'm still trying to figure out what this is in response to. :~
The very old elitist argument against managed development outright regardless of circumstances because performance can be slower in some circumstances than for unmanaged apps.
"Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg
-
Jim Crafton wrote:
But I can't inherit behavior, right? Isn't that one of the compelling things about OOP
Not in my book, except in very specific cases such as GUI libraries. Implementation inheritance is one of the worst ways to reuse code.
Why? Seriously, I don't understand what your issue with it is. I'm not trying to be argumentative, I'd genuinely be curious as to what the issue with it is.
¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow
-
Nemanja Trifunovic wrote:
Implementation inheritance is one of the worst ways to reuse code.
That's gotta be one of the craziest things I've heard (today at least). How are you re-using your code?
- S 50 cups of coffee and you know it's on! Code, follow, or get out of the way.
Steve Echols wrote:
That's gotta be one of the craziest things I've heard
Prefer composition to inheritance[^] Implementation Inheritance Is Evil[^] Abuse of Inheritance[^]
-
I work for an animation company in their research team. We write software components for 3d rendering, we have a home grown high performance graphics library, our own multicasting library, etc., I'm currently working on a high performance server (MFC for UI and C++ otherwise), and on a thread pool in C. Most of our code works extensively with other applications (other application API) like Maya, Quicktime, etc., Performance is very important here and C#, Java and other things stay outside the gate.
“Follow your bliss.” – Joseph Campbell
No argument here. :) Though I bet the folks in accounting would be just as happy with their stuff being .net based (actually I *know* they could care less if they're like accounting and business people the world over) ;)
"Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg
-
Why? Seriously, I don't understand what your issue with it is. I'm not trying to be argumentative, I'd genuinely be curious as to what the issue with it is.
¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow
-
Steve Echols wrote:
That's gotta be one of the craziest things I've heard
Prefer composition to inheritance[^] Implementation Inheritance Is Evil[^] Abuse of Inheritance[^]
So because people have abused it, that makes it evil? In my mind, it's just another tool to get a job done. If something "is-a" I use inheritance. If something "has-a", I use composition. Then there's that huge gray area in between....
- S 50 cups of coffee and you know it's on! Code, follow, or get out of the way.