Objective-C: the More Flexible C++
- « first
- ‹ previous
- 1
- 2
- 3
- 4
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Sponsored by AMD
If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.
Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.
Sponsored by ActiveState
| Speed Up Your Web Site with Varnish | Jun 19, 2013 |
| Non-Linux FOSS: libnotify, OS X Style | Jun 18, 2013 |
| Containers—Not Virtual Machines—Are the Future Cloud | Jun 17, 2013 |
| Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer | Jun 12, 2013 |
| Weechat, Irssi's Little Brother | Jun 11, 2013 |
| One Tail Just Isn't Enough | Jun 07, 2013 |
- Speed Up Your Web Site with Varnish
- Containers—Not Virtual Machines—Are the Future Cloud
- Linux Systems Administrator
- Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer
- Non-Linux FOSS: libnotify, OS X Style
- Senior Perl Developer
- Technical Support Rep
- UX Designer
- Web & UI Developer (JavaScript & j Query)
- RSS Feeds
- Reply to comment | Linux Journal
10 min 50 sec ago - Reply to comment | Linux Journal
4 hours 10 min ago - Yeah, user namespaces are
5 hours 26 min ago - Cari Uang
8 hours 58 min ago - user namespaces
11 hours 51 min ago - yea
12 hours 17 min ago - One advantage with VMs
14 hours 46 min ago - about info
15 hours 19 min ago - info
15 hours 20 min ago - info
15 hours 21 min ago
Featured Jobs
| Linux Systems Administrator | Houston and Austin, Texas | Host Gator |
| Senior Perl Developer | Austin, Texas | Host Gator |
| Technical Support Rep | Houston and Austin, Texas | Host Gator |
| UX Designer | Austin, Texas | Host Gator |
| Web & UI Developer (JavaScript & j Query) | Austin, Texas | Host Gator |
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?



Comments
Re: Objective-C: the More Flexible C++
Some thoughts from a scientist who also dabbles in software creation:
my 2 cents Canadian (not much in othe terms, lately) worth...
Some years ago, I wrote a pretty large (10^4 lines) open-source code
in C. It became apparent that it would help for this code to have
parts that were more object-oriented, and so I read a bit and decided
to convert those parts.
During this work, I learned that objC is quite beautiful. By that, I
mean that the code, and the logic it inspired, was elegant to the eye,
in the way that some mathematics proofs can be.
But one day I realized that none of the folks using this code knew
objective-C, whereas many of them knew C++. Since this was a shared
program, I wanted my users to be able to contribute to the work. And
so I started the process of converting the objective-C into C++. That
was not much fun, partly because the syntax is different and partly
because C++ seems not to inspire the writing of elegant code (or,
better stated, it seems not to inspire the construction of elegant
algorithms).
Why is this, exactly? I'm not sure. At first I thought my distaste
for C++ might be just a love of the old. But, now I've been using C++
for years, and I can read/write it much more easily than objective-C,
and I still feel the same way.
In summary, the advantage of objective-C seems to be that it inspires
an elegance of expression. The disadvantage is that fewer people can
read your code.
Of course, all of this may be moot, since it's my
understanding that many students are learning Java before they learn
any of the C dialects. Maybe I'm getting too old to keep up ... I
just get used to Perl and Python comes along like a knight in shining
armor, and before I learn it, I hear that now Ruby rules!
Dan.
Re: Objective-C: the More Flexible C++
You're right. Obj-C done right is MUCH more elegant than anything else.
Of course, you have to get into the "mood" to do it right. Just applying the "old habits" (C++ etc.) won't work.
Where Objective-C shines is that it leads to truly reusable code. Just comparing the number of classes in a typical C++ library and within Objective-C shows that.
This is not surprising at all: most C++ or Java windowing libraries (like PowerPlant on Mac, MFC on Windows) are anyway just bad copies of the NextStep classes. Their quality only differs how much thought they put into the classes to reassemble the functionality of Objective-C in the choosen language.
so - why not choose the original first?
Learning the syntax is something like 2 days for a C programmer. The tough part is getting the own classes right. But once its understood, there is nothing like it anywhere.
I've written for 10 years in C and C++ and it was always messy and at the end no fun at all. After switching to Obj-C the only thing I regret is not buying a NextStep Station in the 90ies...
Michael
Objective-C---more than just games
Macromedia FreeHand (v4) started as Altsys Virtuoso on NeXTstep.
Improv--Although there was an Improv 2 for Windows, it was never quite as nice
as Improv for NeXTstep (which also fell far short of where it ought to've
been), but there's still no widely available spreadsheet available now which
handles 3D data so elegantly AFAIK.
Then, one could compare the programs which are all but without peer, for
example TIFFany (PhotoShop on steroids), or PasteUp.app (developed almost
single-handedly by Glenn Reid in roughly a year). Or, MCI's Friends and Family
database system (they liked it so much, they bought the company!)
NeXTstep is also the premiere platform for using PostScript directly and
interactively---Alan Hoenig praises it in his book _TeX Unbound_
SoftMagic, www.softmagic.co.kr is an incredible product.
And of course, there's WebObjects....
Lastly, Tim Berners-Lee used NeXTstep (he crafted a thing called worldwideweb.app---guess what it
grew into)
William
Re: Objective-C: the More Flexible C++
Hey, you cannot blame C++ for introducing new keywords and propose a language that overloads every special character on the planet :)
I dont want to say that Objective C is bad or something. But don't try to make a thing better by complaining about another thing.
Beside that, C++ is not only "C with Objects". It has many other useful features, like templates or references. Maybe it would be a good idea to think about mixing C++ and Objective C, creating a "Objective C++" that combines Objective C's runtime system with all the C++ features (and the more popular syntax of C++). As you can see, I am not a proponent of the 'make a language as simple as possible' school, but I rather prefer the 'add every single feature that can not be implemented in a lib, because every feature helps the programmer who works 100h a week in the damn language' school...
Re: Objective-C: the More Flexible C++
Objective-C++ already exists! NeXT extended Objective-C in this way to leverage C++ into NeXTSTEP applications (if the solution already exists in C++ why not use that). It turns out that Objective-C++ is probably only useful for that purpose, the features in C++ have a heavy cost in readability and ease of use, so Objective-C++ isn't used much. Objective-C turns out to prove that K&R were right to keep C a small language. :-)
Re: Objective-C: the More Flexible C++
And it is thinking like that to cause C++ compilers to never be able to totally implement the C++ language specifications. The compiler makers have a hard time trying to implement these "features". I always get frustrated to write a program using valid C++ and it compiles and runs fine on one platform and try to compile it on another(VC++) and have either totally rewrite that part of code or do some conditional compilation that makes the code hard to read. I like C++ and wish a few of the very useful features like namespaces would be added to Objective-C. I am totally against templates being added since it is against the philosphy of a dynamic OO language.
A simpler language allows you to move on and start writing code to do some work. I was able to learn Objective-C in a few days and I understand the entire language. I been programming in C++ for 5 years and I still do not know the language.
Re: Objective-C: the More Flexible C++
> I was able to learn Objective-C in a few days and I understand the entire language.
Just Understand the language is not enough, Apply them practical will tell.
> I been programming in C++ for 5 years and I still do not know the language.
Are you work as a professional programmer for a competitive company or non professional just writing some simple app as hobby or in goverment org that use & waste tax-payer money ?
Nowaday, all OOP similar to C++, include JAVA, C#, VB.NET etc. If you cannot understand C++, you cant understand thiese language as well.
If you are a professional programmer, esp in competitive company, you are already fired (for failed to know the language).
Other comment is, C++ Template (Now C#/VB dot.net also support similar features called "generic") is "good to have", but is NOT "must have", it can improve the reusability and flexibilty very much, esp like map, list, stack etc.(standard template library)
Nevertheless, You do NOT need to explicitly write C++ template to qualify as "C++ programmer". Many professional C++ programmer never write their own template. (template is not so easy to read, but very easy to use).
Many developer likes to make use of some language features just purely because of "the language have this features - I MUST use it", or to show-case there are the pro. , without considering practically, case by case suitability and portability. (ie, "good to have" vs "must have").
Not using template, does not disqualify you as C++ Programmer, But Not even have a basic understand of it, may disqualify you as C++ programmer).
What language to use, and their understanding of the language, depend on the programmer computer-science knowledge also, of-course we cannot expect, for someone study archeology to code in C++. But for those have strong Computer-Science background, C++ is just as easy as A B C.
BTW, I self study OOP generally, C++ specifically. (my school deos not not teach us C++ at that time). I can "understnad" it in few days also, cannot imaging there is someone cannot understand it after 5 years !
Re: Objective-C: the More Flexible C++
Objective C++ already "exists"...
Re: Objective-C: the More Flexible C++
And this does not look like C.
No wonder people adopt C++ instead of Objective-C.
Re: Objective-C: the More Flexible C++
In my opinion, part of C++'s problem is that it looks TOO MUCH like C. This, I think, encourages confusion among beginners and the tendency to write C code, not OO code, with C++.
IMHO, a method call is inherently different from a function call - especially in a dynamic system like ObjC, and should have its own notation distinct from that of a function call.
Likewise, an object is inherently different from a structure, and the notation should be different. Etc.
I much prefer ObjC's [foo bar:1 with:me];
syntax, because it is quite clear that this is an OO construct, and different from all the C code that might surround it.
Without OOP knowledge, not look too much like.
> In my opinion, part of C++'s problem is that it looks TOO MUCH like C. This, I think, encourages confusion among beginners and the tendency to write C code, not OO code, with C++.
Programmer without OOP concept and skill, will write in structured manner given whatever OOP language to them.
for eg, if the code is written by non OOP/C++ programmer, there actually write in 'C' only, wrapped, or saved in .cpp or .cc files.
.cpp or .cc save file does NOT mean it is C++ code. keep in mind.
For those programmer, There are not C++ beginners, but OOP beginner or totally have no idea of what is OOP.
If you given them Obj-C capable compiler, there will also write their code in C only code, wrapped / saved in .m files - nothing to do with "look too much like".
Re: Objective-C is definitely superior to C++
I totally agree with you...
Who does not agree with the title either does not know the language or is a moron (no pun intended)
On the other hand, I believe Objective-C lacks a couple of important features that C++ has (namespaces and templates among them), but I found that it is still an excellent language even without those...
P.S.
You can always mix both languages with Objective-C++
Once I read an article by Tim Sweeney (creator of UT) where he analysed programming languages (or something like that)... he stated that in the future, languages will have features to make class hierarchies "extensible" (I can't remember the exact words)... Obj-C is already capable to do that and with trivial effort (and dynamically: you can "override" any class you find with your own version)
Re: Objective-C: the More Flexible C++
why don't your use [[List alloc] init] to create an object? You used [List new]. But you said:
Usually, you create objects with a call to alloc:
Very confusing.
Re: Objective-C: the More Flexible C++
new is a short cut.
[Object new]
is equivalent to
[[Object alloc] init]
Re: Objective-C: the More Flexible C++
new is just a "shorthand" method used in GNUStep:
- (id) new
{
return [[self alloc] init];
}
Method new might not actually be (not sure) the one above but surely it does the same as above (conceptually)