Subjective C
category: code [glöplog]
sucks
Discuss.
Quote:
I think people should start with low-level languages. Computers work in a way that makes sense. They're physical devices and people are good at reasoning about physical devices. Low-level languages reflect that. High-level languages reflect some crazed idiots idea about how people should solve problems that has then been shoehorned into the realities of how computers work. The result is a hybrid of brain-smashing gibberish. The higher level the language the more of a pain in the ass it is.
Quote:
programming is boring as fuck anyway
Quote:Yup. Can't believe some people do this shit for a living.
Discuss.
From Stuart Ferguson (of Lightwave / Modo fame):
Point 4) is so true it hurts. And no, pimpl sucks.
Quote:
We don't use C++ in our core code for the simple reason that we don't need it. We can do everything we need more easily with C, and large-scale C++ projects are considerably harder to manage. As a so-called modern object-oriented language, C++ is deficient in many ways:
1) Intrinsic types are not objects. I can't perform a "+4" method on a number object and have it do the right thing for floats and ints. This is the single biggest drawback of trying to bolt OO jet-engines onto the C Yugo.
2) Data types are statically defined. No anonymous messages or metaclasses. What are we, Puritans?
3) Construtors and destructors. The Horror. The Horror.
4) Public/private/friend. When I first read about this I thought they were joking. One of the key principles of OO programming is data-hiding. How can you hide your data if the language won't support opaque objects?
5) Try to keep a straight face while talking about a "virtual static member."
I could go on and on, but then we'd never get 201 done...
Point 4) is so true it hurts. And no, pimpl sucks.
I tend to agree. But C needs at least namespaces!
objective c is a breeze to work with, and it's far away from c/c++, imho way ahead.
i'm learning c# right now, and it looks nice too, so far.
i'm learning c# right now, and it looks nice too, so far.
I love C, C++, C# and Objective-C.
The bullet-points that Spike brought up sound to me as a whining of a person who has spent a relatively large portion of his/hers life using a lower-level language. Don't get me wrong, I'm a user/kernel-mode C/C++ programmer by heart, did some assembly programming too, but most if not all of those points are pretty much irrelevant to me. Each language has its uses and I'm always under impression there's some fanboyism in the air when somebody tries to force the whole team to, say, use assembly or even C in order to write user interface..
On the other hand, I could bring up a handful of arguments along the same line from my sleeve if I were to bitch about Java. Which is where my main observation, mentioned in the first sentence, comes from :D
On the other hand, I could bring up a handful of arguments along the same line from my sleeve if I were to bitch about Java. Which is where my main observation, mentioned in the first sentence, comes from :D
I can happily mix asm, C and C++ in the same program, so I'm happy with all of them where needed :)
This thread is an invitation to a flame war, so I'll simply say: Use the simplest tool that gets the job done.
Also, don't write lilbraries in C++ or else the ABI gremlins will kill you while you sleep.
Also, don't write lilbraries in C++ or else the ABI gremlins will kill you while you sleep.
I completely agree with Tjoppen. All said.
What are the good things of Objective C?
C++ with Qt, best combination.
nearly all programming languages are horrible clusterfucks of syntactic clutter (this parentheses means whatever, while this means whatever else) and memetic dead weight ('now remember, when i say "virtual" it means...', and so on with more or less made-up words, ad nauseam. therefore, coding in these languages is like a horrible struggle at coherent expression, and prerequisites a voluntary surrender of sanity.
data flow all the way. information is key, so focus on it.
data flow all the way. information is key, so focus on it.
It all started when I started working on a Iphone/Ipad project. First time with x-code and objective-c and the gui libs and all that stuff. It's not going bad, I am doing some great effort to get used to it regardless some hard to get used syntax in function arguments for example. And also I spent time to understand that I had to do IBoutlets and IBaction to drag-drop elastic line in window to be able to use button actions or write to a textfield. And maybe I'll have to learn much more to adapt to the apple world. And then when I got tired for a while I searched for opinions on objective-c and found also those funny quotes :)
Any other with positive/negative experience on Objective C?
Why one or two people I met say Objective-C is fantastic? I forgot to ask them then and I also didn't know much about the language which I still don't..
Any other with positive/negative experience on Objective C?
Why one or two people I met say Objective-C is fantastic? I forgot to ask them then and I also didn't know much about the language which I still don't..
Quote:
C++ with Qt, best combination.
Will it run in mac/iphone?
I worked on two projects for iPhone, both ended up in app store. I'm not the comparison-fanatic type of a guy, but a few things got stuck in my mind:
* api documentation is pretty okayish.
* profiling is available out of the box for free. something that can matter if you compare it to what one gets when developing for windows with poor man's edition of vs.
* retain/release mechanics are fucked up. of course, ref counting is very fine with me by itself, but the fact that some api calls do retain input objects, and some release them, and some postpone the releasing is really a bitch. Back in the ol' days, when I did iPhone development, I do remember situations when the rel/ret calls INSIDE the api functions were NOT clearly mentioned in the specs. Which SUCKED BAD. :)
And the worst of it all - having the POV I have right now, I still can't see Apple's point in developing a customized C standard instead of using the current one. Apart from being different just because it's <wow>Apple</wow>. Maybe someone here can englighten me? :>
* api documentation is pretty okayish.
* profiling is available out of the box for free. something that can matter if you compare it to what one gets when developing for windows with poor man's edition of vs.
* retain/release mechanics are fucked up. of course, ref counting is very fine with me by itself, but the fact that some api calls do retain input objects, and some release them, and some postpone the releasing is really a bitch. Back in the ol' days, when I did iPhone development, I do remember situations when the rel/ret calls INSIDE the api functions were NOT clearly mentioned in the specs. Which SUCKED BAD. :)
And the worst of it all - having the POV I have right now, I still can't see Apple's point in developing a customized C standard instead of using the current one. Apart from being different just because it's <wow>Apple</wow>. Maybe someone here can englighten me? :>
Quote:
This thread is an invitation to a flame war, so I'll simply say: Use the simplest tool that gets the job done.
Also, don't write lilbraries in C++ or else the ABI gremlins will kill you while you sleep.
Word.
I fucking hate to use C when C++ would do better.
I fucking hate to use C++ when C would do worse.
I fucking hate to use C++ when C would do worse.
How dare you challenge the will of his holyness The Steve? This is blasphemy! He chose Objective-C for the best of your intentions and you should like it! Or perhaps you are one of those Android subvertive zealots trying to smear his holyness infinite wisdom?
@kbi: Here is what I know:
* Apple used a mainly mix of machine code and some percentage of pascal for system and application S/W development in late 70's and early 80's.
* That Bjarne dude crated a language entitled "C with classes" at Bell Labs in 1979
* Objective C is created in 1983
* "C with Classes" is renamed to "C++" in 1983
* Steve Jobs is kicked out of Apple and founds Next Inc in 1985.
* "The C++ Programming Language" book published in 1985
I guess, when they started developing NextStep, they wanted somewhat higher level programming language in order to speed up development and maintain some managability in it. They had some key engineers exposed to OOP and Smalltalk stuff etc, so they wanted similar features but natively compiled fast code (No bytecode/virtual machine etc). Around that time, OC and C++ seemed equally feasible and for whatever reason, they choose OC.
When Jobs returned to Apple in 1997, they dumped the struggling Mac OS Classic and used NextStep OS (which is coded using OC) as foundation of OSX. So we are stuck with Objective C.
Imho, Objective C is not that bad, but requires some love and some syntactic sugar in order to be more bearable.
* Apple used a mainly mix of machine code and some percentage of pascal for system and application S/W development in late 70's and early 80's.
* That Bjarne dude crated a language entitled "C with classes" at Bell Labs in 1979
* Objective C is created in 1983
* "C with Classes" is renamed to "C++" in 1983
* Steve Jobs is kicked out of Apple and founds Next Inc in 1985.
* "The C++ Programming Language" book published in 1985
I guess, when they started developing NextStep, they wanted somewhat higher level programming language in order to speed up development and maintain some managability in it. They had some key engineers exposed to OOP and Smalltalk stuff etc, so they wanted similar features but natively compiled fast code (No bytecode/virtual machine etc). Around that time, OC and C++ seemed equally feasible and for whatever reason, they choose OC.
When Jobs returned to Apple in 1997, they dumped the struggling Mac OS Classic and used NextStep OS (which is coded using OC) as foundation of OSX. So we are stuck with Objective C.
Imho, Objective C is not that bad, but requires some love and some syntactic sugar in order to be more bearable.
exc: ahh, so it's mostly historical reasons. Thanks :)
@optimus
we're succesfuly running QtCore on iOS in our app. could do QtGui also (as we also were involved in porting Qt to Android 1.5 years ago), but there's no point in that.
we're succesfuly running QtCore on iOS in our app. could do QtGui also (as we also were involved in porting Qt to Android 1.5 years ago), but there's no point in that.
People just being too lazy to invest some time in understanding a language...
And then having an opinion about it.
And then having an opinion about it.