Apple Unveils Extra Leopard-isms To Developers
devilsecret writes to point out that some of the new Apple capabilities for developers on Leopard have been unveiled. The most interesting parts appear to be the opening of more of iLife to other programs, and the inclusion of Ruby on Rails.
Wow.
Jory
Anyone think Apple jumped on the RoR bandwagon a little too soon? The whole "movement" has lost a lot of steam and it doesn't appear to be the silver bullet everyone originally thought it was. Also, is this just part of the developer suite, or is RoR support somehow built in to the OEM OS?
Similes are like metaphors
Here's the link to Apple's page describing the developer features: http://developer.apple.com/leopard/overview/index. html
'Every story, if continued long enough, ends in death.' --Ernest Hemingway
3 browsers and 2 OSes, no luck loading the link yet.. anyone else?
Yes, let us link to a Mambo/Joomla powered site that's slashdotted without any comments, OR, link to Apple's high powered, easily accessible: Leopard Developer Overview that was recently posted.
3 browsers and 2 OSes, no luck loading the link yet.. anyone else?
The problem is clearly that you're using the wrong browser and OS combination. Keep on trying different ones. One of them will get the link to load.
This guy's the limit!
This is actually quite cool news. I use Macs to develop websites and I also use RoR so to see that Leopard (Server) will come with RoR pre-installed (from the APpl e Leopard overview) is really cool news for me.
If you aren't far left by the age of 18 you have no heart. If you aren't far right by 30 you have no brain.
VNUnet article
Apple Insider post
Apple's Developer Overview site
These development tools look great. Particularly Interface Builder and XRAY. I've never used Mac development tools, so it's possible that looks can be deceiving ... but seeing this really makes me wish that MS would start to push their IDE forward rather than adding minor enhancements with each .NET release.
Crack - Free with every butt and set of boobs
BOOM!
Ruby on Rails was announced back in August, and I (et al) added details about the rest of the dev overview to Wikipedia 5 days ago. Personally, I thought the most interesting new part was Mandatory Access Control.
BOOM!
Boom... Boom.
I use both XCode and Visual Studio. I much prefer XCode and Interface Builder. There are also a lot of other very nice tools that Apple bundles for free. They are nicer to use than what Microsoft gives you, plus there are a lot of things that you get for free on Apple that you would have to buy third party on Windows such as the coverage tool (gcov) and the profiler (Shark). So, yes, Apple's tools ARE as nice as they appear to be.
Unfortunately, today I have to use Visual Studio and I'm trying to figure out how to get my program to run in a Release build. It runs OK in Debug, but for whatever reason I'm getting an error dialog about not having a manifest file to load the C++ runtime DLL (?). I wish I could use XCode to write Windows apps. Or alternatively that our Windows users would just all buy Macs.
Avoid Missing Ball for High Score
Yes, the site has been slashdotted!
Maybe I'm missing the point here, but why would anyone pay the asking price of just under a hundred quid for a minor revision? No, this isn't intented to be flamebait - I'm a new Mac Mini owner myself and it's getting way more use than my PC. But I can't understand how Apple can charge for what is a pretty damn small upgrade. There were some major major differences between XP and 2000, and I can understand Microsoft paying for these. I can also understand Apple charging for the jump from 9.x to 10.x. But from 10.4 to 10.5? What am I missing here?
Ruby on Rails is only going to be installed on OS X server. Not the regular user version. Pretty important to note considering the install base of SERVER vs. regular.
If this is as big a jump as from 2000 to XP, is there likely to be a performance hit as there was with XP? Did OSX 10.4 run slower on Macs than 10.3 did?
Need I say more?
You can call me a Microsoft fanboy, but I think Visual Studio 2005 is one of th best development environments out there. It has Intellisense, debugging (done right!), great project management (if you use it correctly). Not to mention a lot of .NET stuff like an API for saving application settings in an XML file (no registry keys and just as easy as adding a component to a form).
The only IDE I think is just as good is NetBeans.
Oh, and if you develop non-C# applications you probably won't notice half the features, because C++ doesn't seem to be updated a lot since VS 6.0
why would anyone pay the asking price of just under a hundred quid for a minor revision?
I don't know... I don't normally bother upgrading unless I need to, I'm still using Panther at home and the only reason I upgraded from Jaguar was that I bought new hardware.
There were some major major differences between XP and 2000
I'm still using 2000 because I've yet to find anything in XP that I actually need. The only thing that I've even missed is Bluetooth support. If they'd put a full Citrix server in there instead of ripping so much out that it's basically a low-bandwidth VNC plus virtual consoles... maybe.
And the icing on the cake is: XP Pro *upgrade* costs as much as OS X, and is still bundled with a remote destruct switch in Microsoft's hands.
I can also understand Apple charging for the jump from 9.x to 10.x. But from 10.4 to 10.5?
The jump from 9.x to 10.x was like the jump from Windows 9x/Me to Windows NT/2000. Whole new OS, from the ground up.
The jump from 10.x to 10.y is much more like the jumps from NT4 to 2000 to XP to Vista. New frosting on the same cake. If you need the new features, get them. If you don't, don't. You don't need to jump if you don't want to.
Has anyone figured out if Quartz 2D Extreme is enabled by default on the Leopard edition? Does it work any better than the Tiger version?
// I will show you fear in a handful of jellybeans.
You should try cocoa bindings and interface builder... makes .Net look outdated!
The iChat improvements (being able to do presentations, etc.) look really neat. But I have to assume there's a typo in the description: "Another new feature in the Instant Messaging framework is the ability to manage presence. This means that your application can query the iChat status of the user, indicating whether they are available or busy and what their status message is, as well as manipulate it. " That can't be right, can it?
Bark less. Wag more.
People in these discussions keep moaning about how various changes "are only really any good for the developers"... That's kind of dumb. Developers, duh, develop the applications end-users rely on. The under-the-hood changes in Leopard are bound to benefit everyone. Garbage-collection, better debugging, 64 bit, a crazy animation toolkit, etc. (if you don't know how that impacts the user, try this for example: http://www.discoapp.com/ . It's a new disc-burning application with one of the most interesting work-flows I've ever seen).
If you just stuck with one OS and one browser maybe it'd reduce the load on the servers and you'd give people a chance to read the article.
Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
I'm a die-hard Mac user at home, but I write games for Windows (using MS's dev tools) for a living. As a Mac development hobbyist, I spent years using Metrowerks' CodeWarrior IDE, and -- more recently, and to a lesser extent -- Xcode.
Although I prefer the look and feel of Apple's dev tools to Microsoft's, I find that I get work done more quickly with Visual Studio than with Xcode. More accurately, I get work done more quickly with Visual Studio and the excellent third-party plugin Visual Assist, which provides a number of important code navigation shortcuts including code completion that completely eclipses VS's IntelliSense.
Visual Assist is one of those tools that's painful to be without once you start using it. It sounds like the company isn't planning on a Mac version, which is a shame... do any Mac devs out there have tips on how to make the Xcode development experience less painful -- specifically, how to deal with its poor code completion facilities and slow text editor?
It sounds like the company isn't planning on a Mac version, which is a shame...
:-)
If you are talking about my case (the GPP), then yes, actually I am doing a Qt application that ships on Mac, WIndows, and Linux. And Windows is a fscking pain in the ass. What I meant was that if the WIndows users would just switch to mac, I wouldn't have to screw with Windows and could just do Mac
Today (and I literally mean today), I am working on a specific issue in Visual Studio. But we DO have a Mac version.
Avoid Missing Ball for High Score
No, I was talking about the Visual Assist plugin for Visual Studio. The company that makes Visual Assist, Whole Tomato Software, apparently has no plans to produce a Mac version of the plugin.
become 1st class languages on OS X. Apple is adding the ability to write cocoa apps in Ruby and Python. Sure, you could do it in the past, but Apple wasn't very supportive to the PyObjC and the RubyCocoa projects. But from what I saw on the demo's, Apple has been working hard to make Ruby and Python a legitimate choice for cocoa development. So now you'll have 3 choices: Objective C, Ruby, and Python. By the way cocoa development with Java is canned.
But there are lots of similar things for the Mac, editors, etc. Have you looked at TextMate?
Avoid Missing Ball for High Score
Mandatory Access Control is another compelling reason, at least for me. Currently there are no viruses in the wild, but few trojans and some proof-of-concept Bluetooth exploits. Anyway, the risk is there, and this particular implementation (derived from TrustedBSD) looks promising.
http://revj.sourceforge.net
I'm a Linux and Mac user at home with almost no MS software (I have played with Vista RC1 recently and have Win2k in a VM for web site testing). I'm not a fan of MS or their software but I have to use XP at work. I think it's important that I say this up front because of what is to follow.
We have VS 2005 at work and I recently got permission to install it (no one else was using it as our resident Windows dev has gone back to Delphi) to create some tools to make my life easier. I have to say I was very pleasantly surprised. I can make my tools very quickly indeed with C# and .NET and the IDE is pretty good.
The downside is that .NET can make you lazy because it does so much for you. It does 90% of what I need but the last 10% has me spending too long looking through the docs to see if there are properties, methods or events that let me do what I want easily. For example, I'm using a TabControl but I couldn't find a way to detect right-clicks on a TabPage's tab so I could pop up a context menu so I wrote some code to loop through all the TabPages, see if the right-click was on each TabPage in turn and if so pop up the context menu. I'm still learning the framework but that seems like a round about way to do things and something that should be there already.
Next to VS 2005, Xcode/Objective-C/Cocoa feels quite "old school" but I like that. It's more like the way I was taught. It can be hard work but it's worth it. I think Apple's approach may be less RAD but it maybe a more flexible approach. It's too early in my VS 2005 usage to be sure. At least Apple provide dev tools with their OS. If you want to attract the home coder you need good free dev tools so I'm glad MS offer the Express versions of VS and I plan to look at at least Visual C# Express to see how that compares to Xcode.
Andy.
From the TextMate FAQ:
Better code completion is really what I'm after. TextMate does look like an interesting tool -- just not necessarily an improvement over Xcode for C++ development.
On PowerPC you'd only want applications that actually need to do 64-bit math or address more than 2 or 3 GB of memory to be 64-bit, but for x86 it's a different story because the extra registers that are available in 64-bit mode may make applications that have no use for 64-bitness in itself a lot faster.
So I'm curious as to what developers will do. Hopefully, they'll evaluate the performance of their code and compile for 32 or 64 bits depending on which is faster. But of course you want your app to work on older Macs too, so you may need to include:
18 MB may not seem so bad at some point in the future. :-)
If development is made simpler, programmers can focus more on algorithms and see what's happening more clearly. That's why we have expensive RAD software like Matlab - instead of writing garbage collection and array resizing, developers focus on how to do the job most efficiently. And after that is found out, the app can be rewritten (even with some help from Matlab) in C++ or other language.
Don't forget F-Script, which lets you write Cocoa applications in a Smalltalk-like language and environment.
F-Script is free and open-source.
About the main difference in Visual Studio 2005's C++ is that Code Insight crashes a lot. I mean a lot. Thankfully, the Whole Tomato tool mentioned elsewhere in the thread doesn't.
It is these last two that are of real interest. Individually they are just adding more security features under the hood, which most people will never notice. In that case it is great, but nothing too new. Together, however, they could be the groundwork for just the type malware/spyware defense some security people have been hoping for for years.
Imagine a system where all unsigned code runs in a sandbox by default, without access to any files it does not create, the internet, or any important parts of the system. Realistically, people want to run software they don't trust. They will run it. Most people don't understand the idea of multiple users as a security mechanism. It does not make sense to them that you need to create a new user account to sandbox an application and it is painful from a usability standpoint.
This announcement could be the first indication of the first real, usable desktop that has the benefits of some of the most secure workstations on the planet. Who cares about RoR tools in OS X server?
Maybe SlickEdit is what you are looking for... Their "Mac" version requires X11 though.
The reason is mostly one of developer convenience, IMHO.
The format of NIB files and the bundle structure changed in 10.2. For developers, this was a huge difference. Localizing an app (as I recall) under Puma (10.1) was time consuming. The binary-only NIB file format before 10.1 meant you either needed to localize your app in your code or by manually opening the NIBs in interface builder and changing things. 10.2 allowed for text based NIB files, supported new user-visible GUI items, and was more resilient against corruption (at least anecdotally). There was a backwards compatible file-format for 10.1 but it was not the default. A developer could make a backwards compatible app, but what developer is going to go out of their way to make their job harder? Even today, it's possible to develop bundles and NIBs that are 10.1 and 10.0 compatible, but it's just not a desirable thing for developers to do.
10.5 will offer developers what I consider to be "major laziness options" so I expect it will become a mandatory requirement for new versions of OS X apps. Some of Apple's private GUI items users know from the iApps and Pro apps will be available in Interface Builder so developers don't have to make an inferior knock-off. Garbage collection in Objective-C 2.0 will make debugging your model far easier in debug and development, even if you decide to go back to manual memory management for performance in your release app. More unification of Carbon and Cocoa (e.g. NSViews in a carbon windows). In the past, things like the NSDocument architecture were great but for many developers it wasn't enough to force a rewrite of their app from the ground up. They'd already done the hard stuff, so why start over? But with 10.5 there are compelling developer reasons for new apps to NOT be backwards compatible and for older apps to rewrite their model or interface layer in 10.5 only code (even if they can't justify starting over with a clean slate). The biggest justification for 10.5 only apps will be developer laziness :-)
This is admittedly off-topic, but...the fix for the "error dialog about not having a manifest file to load" is to generate a manifest (linker setting and also the new "manifest tool") and use the new "assembly" based deployment model. The release builds of CRT in VS 2005 have a runtime check which throws an exception if you don't have either a manifest resource (embedded) or .manifest file (detached) for your application. In other words, M$ is FORCING you to use their new deployment model now, whether you want to or not. And just for the sake of doing it - the .DLL's themselves don't care how they are deployed as they still run on pre-manifest systems.
Yay assemblies! They're like frameworks, except without versioning and without the development time support! More effort to build and you get nothing out of it.
You don't need to use much of a "deployment model" - just put the CRT DLLs (msvcr80.dll, etc) in the same directory as the application, and put Microsoft.VC80.CRT.manifest in there too. WinXP+ will still use the system's copy of the CRT if it's available (presumably because that's more likely to be patched), but it will fall back on the one in the application directory if necessary; and Win2K will just ignore the manifest and load the DLLs like normal. But nobody seems to explain that method - they all say "use the Microsoft Installer and the CRT merge modules" which is just a pain.
They've already deviated from the "big cat" naming trend. Pumas (10.1) are classified as small cats because they can not roar. Apple has applied for cat related trademarks including Cougar, Lynx, and Lion. That'd take us through 10.8. What about 10.9? I'm guessing:
The Mac OS X developer tools are on the same DVD as Mac OS X itself. And, on new machines, the developer tools installer is already on the hard drive. So the truth is somewhere in the middle.
Comment removed based on user account deletion
Of course new features are mostly welcome in most OS, but it can gives more headache for dev's to keep backward compatibility ( but of course most of the time, this is a feature that is most of the time replaced by a "require a newer version" dialog box). Of course modern api gives more security, usability and ease of programming but at what cost ? Isn't OSX secure enough for most user that don't feel the need to upgrade the OS but must because their software require a newer OS version (and their OS a newer hardware)?
To have a right to do a thing is not at all the same as to be right in doing it
It is already so painful to even write code in Xcode. Sure the interface building is nice, but what's the point if you can't even get decent and relevant code completion and lookup that even begins to resemble VS intellisense 2002!
Don't even get me started on Xcode's crappy debugger (gdb-based) that can't even automatically give me reliable and decent variable value expansion and such. Why does I have to dig to find what a CFStringRef, or any ref, points to what actual data, sometimes? Why do have to dig through layers just to know what my basic_string<> is? Why does the debugger sometimes map to no code line except the very bottom of some random file while I'm stepping? Why does the debugger act strangely and go off into lalaland if I'm off by a CFRelease or CFRetain? Why do I even have to deal with CFRetain/Release and CFStringCreateCopyWithKitchenSinkInsideTheTitanic in today's world of namespaces, constructors and such?
Only thing that seems to offset all this hair-pulling is distcc for quick recompiles, with no such no easy alternative in MS world.
Can you elaborate on why you feel that Xcode and Interface Builder are nicer to use than Visual Studio?
No, but I used to work for Microsoft.
> Only thing that seems to offset all this hair-pulling is distcc for quick recompiles, with no such no easy alternative in MS world.
There's Xoreax Incredibuild, which we used at my old job. Reduced compile times for a full build from +30 minutes to less than 4...