My Thoughts on Sutter’s “C++ and Beyond 2011″

Around a month ago, Herb Sutter gave a talk on why C++ is once more gaining relevance in the world of programming, and how after a decade of neglect and abandonment, it is set to pave the way into the future. I downloaded it a while ago and finally had a chance to watch it last night; the talk itself is most-excellent and is around 40 minutes long, you can stream it online or download it in a higher-resolution format on Channel 9. Or click below to watch:

As someone that’s been using both C/C++ and .NET extensively over the past years, I found there was one very important point that Sutter glanced on, danced around, and did everything short of actually naming in his talk and it’s that if you’re doing anything remotely intricate or complicated, leaky abstractions in managed languages will bite you in the ass, and end up lowering your productivity, some times (and if what you’re working on is truly complicated, often times) to a point where you’d have been more productive using C or C++ in the first place.

The concept of leaky abstractions isn’t anything new and I’m hardly the first to point out how it can turn a knight in shining armor into a harbinger of doom and destruction. It’s the number one problem fundamentally present in almost any framework, but even more so in managed languages where the framework is all you have, and you’re not allowed to side-step it and build your own foundations to work with (p/invoke and interop aside). But lately it’s becoming more and more of a problem as the “push” for innovation that Sutter speaks of has become a fundamental requirement in just about all corners of the industry.

Continue reading

Apple’s New Animation Framework

Although we try our best to be impartial when it comes down to OS wars, and we have, throughout the years, presented the pros and cons of Windows, Linux, and other operating systems, you’ve probably noticed that NeoSmart Technologies isn’t too big on Apple. Well, color us purple, but this we have to talk about.

Apple [[AAPL]] has a new technology due to ship in Leopard that is pretty damn impressive to hear some of the developers (or at least those at liberty to discuss what they’ve been told) talk about it. According to this Wired News article, this framework will focus on making it easy for developers to add Next (Delicious) Generation graphics to their applications, bringing the concept of UI to a whole new playing field.

While it sounds just plain awesome, we can’t help but look at it with mixed feelings. Since this is Apple and not Microsoft we’re talking about, we’re pretty darn sure everything they say can and will be found in the RTM release of OS X Leopard *cough* WinFS *cough*, but whether or not it will revolutionize the concept of user interfaces everywhere remains to be seen.

Granted, the effects are supposed to be astounding. But that’s not the question, next-gen UIs (hereby dubbed “Desktop 2.0″) are almost always a matter of how and not what. As the Wired article states, these same “amazing” graphical innovations with the UI do already exist in certain programs (like Disco, the CD burning utility for OS X), the only difference is, Apple promises to make it much easier to get the same end results.

Continue reading

{smartassembly} reviewed


Programs. They start off in the IDE as nothing more than a blank page, then (with the blood, sweat, and toil of programmers and many sleepless nights) they turn into volumes of monospaced text, a standing testament to the dedication of programmers and the way they work. Then from the myriads of the source code and the magic of the compiler comes the executable file, the fruit of all the efforts. No one really sees the actual work that went into it: all they see is a file that runs and a program that works.

Well, that’s the way it’s supposed to go. But with Java and .NET, it doesn’t really work that way. These frameworks/virtual-machines rely on the concept of virtual machines, compiling to Byte Code (Java) or MSIL (.NET). What looks like an executable file is actually source code being passed on to the framework for translation and execution. So your source code is never safe, and it’s never really compiled.

We’ve been using .NET for our programs at NeoSmart Technologies for years now, and we’ve never really come across this as a problem, simply because our software’s always been and always will be freeware. However, in recent months we’ve seen some of our more popular programs like EasyBCD being decompiled and its source-code stolen left and right by those that don’t know any better. So we set off looking for the best obfuscation tool for the job, and found much more than what we were looking for.

Continue reading

Please Microsoft, Stop Holding .NET Back!

As dedicated developers, end-users, and champions of Microsoft’s .NET Framework, we’re making a final plea to Microsoft and the .NET Framework team to save .NET and make it a real multi-platform framework. Please!

Sun could (and did) do it with Java, so why can’t Microsoft just swallow the pill already and provide real support for the .NET Framework on all operating systems? Yes, that includes Linux and Mac too. It’s ironic, because the .NET Framework has so much potential as a platform with its unique multi-language structure, nifty features, excellent libraries, (relatively) well-performing output, and darn-good innovative technologies like LINQ coming-up and XAML already here. Yet Microsoft just doesn’t realize that if they truly want .NET to succeed, they’ll have to bite the bullet and stop pretending that only officially supporting Windows won’t make users leave Linux/Mac/BSD/Whatever and buy licenses for Windows instead.

Continue reading

“People Hate Making Desktop Apps…” Since When!?

What a crazy day for technology. It all started with Paul Graham’s ridiculous link-bait article “Microsoft is Dead,” earlier today. Since then, the web has been in an uproar – just how do you define success, innovation, power, creativity, and can companies just “die” anyway? Never mind that conversation – Paul Graham surprised us there though. He’s normally a sane and very much down-to-earth person with a lot of insight on Web 2.0 and what it takes to be a startup. But that’s not what we’ve taken up a problem with – what’s really gotten to us is how some people are using his article as grounds for an argument that Desktop apps are old, dead, and a pain-in-the-ass to make.

The particular post being referred to is Ryan Stewart’s “Why Do People Hate to Build Desktop Apps?” It comes in response to the article by Don Dodge and a conversation with Simon Bateman. Now that the background’s succinctly (hopefully) out of the way: While Ryan’s article makes a valid a point about the ease-of-use of Microsoft’s .NET Framework and Adobe’s Apollo and just how powerful-yet-easy these two technologies make desktop software development – his entire article is based on an invalid premise! People don’t hate making desktop apps!

Continue reading

Is .NET Taking Over the World?

4 short years ago, Microsoft unveiled its new framework/engine for programming and running applications in a virtual environment, and the world was stunned. Microsoft had introduced a run-time environment that was for the first time a true “Write once, run everywhere” implementation, but that was far from being the end. With .NET 3.0 on the loom, NeoSmart Technologies takes a look at how far .NET has come and just how long it can keep going.

Besides being a true virtual machine implementation that really does work everywhere no matter how terrible your code is, .NET is paving the way for a revolution that’ll end with it either dead or the only language worth using.. and from what we see, it sure isn’t the first!

Update: Once you’re done reading, here’s a follow-up that should clear some things up.

Continue reading

A Separate .NET 3.0 and What it Means

Ricky Tan of Microsoft’s MSDN Blogs hints at an RTM within two months for the new .NET Framework 3.0, and leaves us to wonder just what that means for the .NET Developers out there. For those of you that haven’t heard, Microsoft .NET 3.0 Framework is the new name for WinFX and .NET 2.0 bundled together.

Assuming you’ve read the links above, the obvious question is whether or not this is a good thing. If it were a simple announcement stating that “.NET 3.0 won’t RTM with Vista” we can tell you that the community would be in an uproar given Vista’s spotty track record. But this is actually really good news.

Continue reading