3 ms·
C++ makes you able to write simple tasks in a complicated ways, thus a great asset to the global hidden mission of software industry which is to write code tha
by julie1 13y ago
C++ makes you able to write simple tasks in a complicated ways, thus a great asset to the global hidden mission of software industry which is to write code that will seem brilliant but fail in a devilish way. So go for it.
“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.” — C.A.R. Hoare, The 1980 ACM Turing Award Lecture
You can also learn more than one langage because they fits domain of excellencies you want to master:
- C low level programming (zmq switched from c++ to C because of error handling)
- high level portable language that can bind on libraries (python to avoid hispter mac users using ruby) ;
- something for concurrency (Go);
- R-project for data treatment;
- vanilla JS because mixing LISP difficulties with braces syntax is insanely cool;
- PHP and Perl to feel with your guts what a wrong language is (hint: it is all about maintainability);
- ASM 68000 because motorola 68000 is the most beautiful mix between a good design and implementation and it will make you truly able to build a consistent mental map of what a computer really is;
- Tk because 25 years it still is the most portable way of doing GUI and has inspired everyone;
- Forth because it is fun to use postscript as a real programming language;
....
- SamReidHughes 13y agoHave you looked at zmq? It should be pretty clear that the developer of zmq is not somebody you should be taking any cues from.
- julie1 13y agofor now I have a system that has been successfully using it for weeks, so I pretty think it works. And yes I have watched the code and found a bug. The clock used in python is mononotonic but may change its frequency and the the time structure is wrong on 64bits architecture there is a cast to signed long long where it should be unsigned long long. So if I can find stuff easily and see bugs, it means to me the code is well architectured and readable.
- SamReidHughes 13y agoI know somebody who's dealt with it for a lot more than weeks, and according to him and from what he's shown me the code inside of it and the bugs it has are pretty laughable.
- julie1 13y agoThe real ugly truth is all of our code (mine included) is pretty laughable and bugged. But I made no actual asynchronuous messaging system that actually can send messages with a 99.999% reliability, and hardly no noticeable memory leaks. So since I haven't coded any better, given that it works and suits my need, I use it. And since my code is almost correct (okay, there are places where I wish to use an obfuscator to hide the hideous), replacing zmq with something else, should be quite easy.
- mihai_ionic 13y agoC++ has <chrono>, which guards against this kind of mistake by using the type system.
- andrewcooke 13y agodidn't they switch from c++ to c and start a new project? http://nanomsg.org/ http://nanomsg.org/ http://250bpm.com/blog:4 http://250bpm.com/blog:4 http://250bpm.com/blog:8 http://250bpm.com/blog:8 - Why should I have written ZeroMQ in C, not C++ (i don't have a dog in this fight, just throwing fuel / data on the fire...)
- okpatil 13y agoWhat do you think about Assembly? Is it worth learning ? (Disclosure: I have recently started studying it.)
- julie1 13y agoGiven your architecture is not made by alien (thus intel) it is fun. The better the artchitecture is designed the funnier the assembly is. It makes you feel both miserable (you discover all the stuff we considered as granted as dynamic hash tables don't exists) and like the king of the world (yeh you made a led blink \o/). I pecularly recommend it for people with bipolar personnalities, it will suits them 200% ;)