Cloud Foundry: Design and Architecture
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Michael Hunger on Apr 05, 2011
The public Early Access Programm for the full featured Objective-C IDE "appCode" was announced today by JetBrains.
Main features of the IDE are:
InfoQ took the opportunity to ask JetBrains Maxim Shafirov about the new IDE:
InfoQ: What drove the decision to develop appCode?
Maxim: We at JetBrains admire what Apple has done to desktop apps and more generally to a consumer targeted software. They're setting new interaction design quality standards. But this is not the case when it comes to developers software, in our opinion. So we see a great opportunity for JetBrains to bring its development tools expertise to this emerging market of developers, who know how a great software should look, who care about their productivity and code quality.
InfoQ: What were the major challenges in developing appCode ? Did you work with Apple in developing the IDE ?
Maxim: It's Objective-C! This means it's C in the first place, with a header file based modularity, macro processing, etc. We've invented some really smart tricks to parse and process all the stuff on-the-fly to offer our users a modern IDE grade level of code understanding. We didn't interact with Apple so far but there are a few things we'll ask their help for, namely debugging on device.
InfoQ: Is appCode useable for all Mac development, so iOS and MacOS ?
Maxim: Absolutely. EAP builds might be slightly slow for some larger Mac OS projects right now. But hey, this is just a first EAP!
InfoQ: If you would compare appCode to XCode what are the major features that differentiate it and what do you think will help the developers most?
Maxim: Its generally the same stuff you find in other IntelliJ based IDEs: code navigation, on-the-fly code analysis, quickfixes, intention actions, refactorings and smart editor features.
InfoQ: What do you think will Apple say to this competition on its very own market ? How was the perception from alpha testers / developers so far?
Maxim: First of all, iOS and Mac OS apps installed on iDevices and Macs — that's what Apple's main market is, not apps developers. So, we believe there will be more great apps developed with appCode and it is good for Apple.
Initial perception of appCode was very positive regardless of, frankly speaking, quite poor quality and feature incompleteness of the earlier closed EAP builds. Without disclosing any details I'd like to notice there are some quite popular applications in Apple's App Store that have been fully developed with appCode!
InfoQ: Do I still need XCode / the Apple development infrastructure to develop applications?
Maxim: Yes. You need to have Xcode 3 or Xcode 4 installed. At the very least we need a platform SDK that comes with Xcode, the Interface Builder and device simulator.
InfoQ: What are the limitations when working with appCode ? Does it only run on MacOS?
Maxim: Yes, it only runs on Mac OS X for the reason listed above: we need an Xcode.
InfoQ: Were you able to replace the XCode project files?
Maxim: Nope! For now we feel it is important for appCode early adopters to be able to continue developing their appCode projects in Xcode at any time. And switch from Xcode to appCode without any additional configuration. So we decided to live over the Xcode project structure. You can create Xcode project from AppCode or open an existing one.
InfoQ: What is the roadmap for appCode and its license ? Is there any already any pricing information?
Maxim: Well, we've just released our first public EAP and will carefully listen to what people will say about it. This may or may not dramatically change our plans, so, let's see. Pricing policy is still under discussion but that'll be affordable for sure.
InfoQ: Thank you for answering our questions so promptly and thoroughly
You can read more about appCode at the Jetbrains Blog, the appCode Forums and follow jetcidr on twitter.
Visual Studio vNext: ALM features for Agile Planning, Team Collaboration
Adopting Git for the Enterprise: Risks and Considerations
Requirements, quality and test management e-Kit
Given their strength in the Java realm, where IntelliJ has a strong following, it's good to see them bring their highly-regarded talents to the Mac OS X world. Also interesting design idea to keep the XCode projects, that makes sense. XCode needs some competition.
I strongly believe that AppCode will create a new era for Mac/IOS application Development. Think about industrial strength programming tool that developers on the java world has accustomed to, and healthy plug-in system that AppCode could use to extend its features.
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
Andrew Watson talks about the work of the OMG, where CORBA is alive and well (hint: in your car), UML and UML Profiles vs. custom Modeling languages, DDS and other middleware, and much more.
Sohil Shah discusses creating iPhone and Android enterprise mobile applications based on cloud services using the open source platform OpenMobster.
Paul Sanford presents the transformations supported by data throughout its life cycle, and how that can be better done with Splunk, an engine for monitoring and analyzing machine-generated data.
A common “best practice” for unit tests is to only write a one assertion in each test. I intend to question this advice by showing that multiple assertions per test are both necessary and beneficial.
John Rauser presents the architectural and technological evolution of Amazon retail websites starting with 1994 and ending with adopting Amazon Web Services.
Michael Stal discusses system architecture quality, how to avoid architectural erosion, how to deal with refactoring, and design principles for architecture evolution.
Every developer has had to integrate with another system, API or component. Tis article provides strategies to handle the change and for he separating system boundaries.
2 comments
Watch Thread Reply