Why we can't run the Visual Basic Application on Mac? - macos

Why we can't Run the VB6 applications in Mac OS? I know Mac doesn't have VB runtime, Could anyone explain about this further?

As you say, there is no VB6 runtime for the MAC - given VB6 relies heavily on COM and Mac OS is a unix-like OS I can see why it would be hard to port (though not impossible) - the control library would have to be different too, since the UI on the platforms is quite different in places. I suspect fundamentally that the effort vs benefit was never high enough to get it done, but that is just conjecture. As MS have dropped support for VB6 on Windows some time ago, I wouldn't hold out any hope of it appearing on the Mac from them now.
There is a VB-like tool from Real Software called Real Studio that works on Mac apparently so if the reason for the question is that you have VB6 skills and are looking to develop for the Mac platform, that might be a possible solution.
And, since you tagged with VBA...VBA is available in the MS Office 2011 products though you will, possibly, have to go about things slightly differently on the two platforms (you can call applescript from VBA in Excel on the MAC).

Related

Porting a multi-threading Delphi application to Mac: what are my choices?

I need to port an application (written in XE2) to Mac.
My application is split into a simple UI executable (single-threaded) and an invisible engine (which heavily relies on OmniThreadLibrary 3.02 and Cromis DirectoryWatch)
Both EXEs communicate via Cromis.IPC
This is to say that I mainly have issues with these 3 components (OmniThreadLibrary, Cromis IPC & DirectoryWatch)
My focus right now is the Engine, which has most of the code.
My question is: Is there something similar to OmniThreadLibrary, Cromis DirectoryWatch & Cromis.IPC for Mac? (Whether with lazarus or XE2 with Mac as a target compiler)
The answer will help me a lot in deciding whether I should use Delphi XE2 or Lazarus (an IDE which I'm not familiar at all with) and see what's the best long term approach to offer/support both Windows & Mac with the minimum headaches
I am answering the part of your question dealing with compiler /IDE. I've used Lazarus and I must say that it won't take you too long to get up to speed (except for your exact requirements). Lazarus is getting more and more professional; a number of the developers are professional Delphi / XE2 coders by day. I think since you want to make your application available on Mac, you are going to have some work cut out anyway. But, it you decide to use Lazarus, you can for the most part build applications for Linux, Mac, and Windows without much effort ... most things just build right for each of the platforms from the same mostly unmodified source. Of course, as you say, your code heavily leans on OTL With OTL being a windows only library, I think you are going to have your work cut out for you. (read ... you might have to write an equivalent library yourself, or have someone do it for you) As for Chromis Directory watch, I haven't found anything yet.
I hope this helps a bit. CHEERS
This Lazarus tutorial shows that threading functionality built in. I am unaware of an equivalent library for what you are searching for. CHEERS

What are some other comparable products to RealBasic?

I'm looking to get something that can create apps for Mac and Windows. It also seems that RealBasic can also create applications that have some sort of SQLLite DB built in. This is nice for standalone apps that need to save state/data.
I have Flash, which can create executables for Mac and Windows, but it doesn't have the easy database packaging or integration.
What are some other comparable products like RealBasic?
You can check out LiveCode
I do not have any experience using it but it also claims to support cross platform application development across Mac / Windows / Linux etc
Also, i think this product is what used to be called "Revolution" so it has been around atleast for a few years now - Revolution has been around since before 2001 to the best of my knowledge
The main problem with using Java is that the UI won't have the native look and feel of the platform it's running on. Sometimes that won't matter. But I've found that for most endusers the UI is a big deal.
Contrary to the above answer, RealBasic has never used an "interpreted runtime". It's compiled to machine code and linked to the runtime. These days it's compiled into LLVM instructions first before being compiled into machine code. So it's definitely faster than Java. It's main weakness seems to be the stigma attached to any language based on Basic.
I was using RealBasic for many years, due to its cross-platform capabilities. RealBasic was very long the only product that really managed both worlds.
With OS X 10.4 JAVA became a real alternative for RealBasic. On Windows JAVA was running well for several years, and with 10.4 it was also running well on OS X now.
The only thing with JAVA is: You need to have a JRE on the target system (OS X always has, Windows usually has but not always) - that is the only bad thing about JAVA. RealBasic is also "only an Interpreted runtime" - but it brings it's runtime in the binary, what on the other hand makes RealBasic .exe really huge if you compare them to a VB-project.
With 10.4 I decided to change to JAVA for Crossplatform-Development and from my point of view today, it was the best decission I could make.
You can try with Adobe Flex (now Apache Flex)
Flex for Web Apps (RIA apps) using web services (php, coldfusion, java, asp.net, etc)
AIR for Desktop (Windows, Mac)
AIR for mobile (Android, iOS, BlackBerry)
if you use AIR, then you need install AIR runtime
sorry for my bad english

Moving from Windows API to Mac OS

I'm a Windows (native, not .NET) programmer and I'd like to port an application to the Mac.
Actually, I believe it will be more of a rewrite, as the original depends on many activex controls.
As I have never used a Mac in my entire life, I'll need some guidance. O:-)
a) What book(s) would you recommend to make the move from Win32 to Mac OS?
b) Is there anything similar to Delphi (RAD) for the Mac?
c) Can anyone recommend (or not) Lispworks (www.lispworks.com)?
d) Is there anything similar to the Windows market of 3rd party COM components (so I don't have to write everything)?
e) Anything else I should be aware of the Mac market?
f) Oh, BTW, what Mac should I buy? O:-) (must be a laptop)
Thanks in advance
I've taught Cocoa programming to several Windows-experienced programmers. You may find a previous post on the subject useful.
Cocoa is a very different way of thinking then MFC and its kin. You will do much, much better if you take the time to learn how Cocoa approaches things and adapt to its mindset rather than trying to find the quickest way to implement your current way of thinking in ObjC. It is possible to write MFC-style code for Mac, but you will always be fighting the framework if you do. I've seen a lot of Windows developers struggle with this.
The best book to learn Cocoa is Cocoa Programming for Mac OS X. Assuming you are a C++ developer with a solid OOP background, this is the book to start with. If you have limited Object Oriented background, then start with Programming Objective-C 2.0.
You would be amazed how fast Objective-C can be to code once you understand the patterns. It really can be stunning compared to C++ in my experience. There are more RAD-like systems like REALbasic, and you can develop Cocoa apps in Ruby now which can be a bit quicker. But there really is no substitute in the Mac market for ObjC. It's hard to make an app that works like a Mac app without using the Mac frameworks, and Mac users tend to be much fussier about such things than Windows users.
I have no background in LispWorks, but LISP seems a terrible language for developing the kind of rich UIs that Mac apps are known for. I like LISP (quite a lot actually), but Functional Programming's "no side effects" philosophy seems at odds with most rich UI goals (especially as the Mac UI becomes more and more animation-centric). If anything, Mac programming is moving towards Declarative rather than Functional programming (Core Animation and Grand Central Dispatch have a lot of Declarative concepts creeping in).
There is not as large a third-party component market as there is for Windows. Some of this is because Cocoa already provides such a rich set of components, which MFC does not, and because well-behaved Mac apps are expected to use those components so that you work like all other Mac apps. There is definitely little market for commercial components in the vein of RadControls for .NET (very nice toolkit, that one). But there are quite a few nice free components out there with flexible licenses (generally MIT-based). A few of my favorites:
Positive Spin Media's excellent tabbar control
OmniGroup's frameworks (though I never use them "as is;" they're better used as examples of how to do things)
Growl
Sparkle
RegexKit
CocoaDev's ObjectLibrary list of other stuff
As I mentioned before, Mac users are picky about their UI. Much, much more so than Windows users. They expect things to be polished, and they expect things to integrate with all the little things that make Macs nice. That means drag-and-drop, Spotlight, services, Applescript, Expose, QuickLook, integrated spelling check, etc. etc. It's very hard to do all these things right if you don't use the built-in frameworks. That's why I recommend new Mac developers start at the beginning and learn the frameworks.
For a Mac, if you have a bunch of hardware lying around (like keyboards and monitors), then a Mac Mini is a nice cheap box. iMacs are great if you want an all-in-one, and any MacBook is appropriate if you like portability. There is no Mac on the market today that is not a perfectly fine development box. Obviously if you do a lot of work, an 8-core Mac Pro makes compiling much faster, but I've done a lot of professional development on a 13" MacBook. If you want to get in as cheaply as possible, look for refurbished or used (I love my refurbished Mac Mini). Any Intel-based Mac is going to be fine for development, at least while you're getting started.
If you are familiar with C, you may want to learn Objective C since that is the Macs "native" programming language. It's also what you have to use to write iPhone applications. Cocoa is Apple's primary API that will have a lot of the tools you are looking for.
a) Read this thread for book recommendations: https://stackoverflow.com/questions/7571/cocoa-and-objective-c-resources
b) Apple makes Xcode for developing in. There are certainly better ones out there, but it's not bad.
d) Cocoa is Apple's main API, which provides "core" services like CFNetwork for networking. There is also core data, core audio, core animation, core image, core location,... Underneath it all, OSX is Unix, so you have access to many unix/linux libs.
e) The iPhone is a big part of the Mac market. The iPhone and OSX development environments are not that different, so you can learn both.
f) Any Mac is sufficient for most development. If you want a laptop, it's really a question of screen size and price. But I would recommend at least a 15 inch screen. You don't need to spend extra for a faster CPU, but you may want to get a larger hard drive.
If you've done your native Windows programming in C and/or C++, you may have an easier time migrating your application to C#/.Net, and then running it in Mac using Mono. At least some of the available third-party .Net components will run on Mono (see http://www.mono-project.com/Third_Party_Controls_Status).
I have no idea what Mac you should buy - I recommend getting one of the pretty ones.
a) ...
b) You could use Python coupled with wxPython and be cross platform. Python is included by default with Mac OS X.
c) ...
d) I'm sure there is, but I can't tell you more. If you use Python, you get tons of third party libraries for free.
e) They don't take kindly alien GUI guidelines:
Word 6.0, launched in 1993, is widely considered to be the worst version of Word ever for the Mac, as it was based on the same codebase as Word 6.0 for Windows. That meant that it looked and worked more like Windows software than a Macintosh program. Mac users were so up in arms that Microsoft actually released a Word 5.1 downgrade to unhappy Word 6.0 owners.
f) Mostly any iMac will be good enough for programming. Choose the one that you like the most and has lots of RAM.
e) Its a small market.
f) An iMac. Edit: since it says laptop - Macbook Pro 13 is a great deal.

Developing for Mac OS X, on Windows?

Well, simple situation. I happen to be a software engineer who uses mostly Delphi and C# for software development. Delphi is great for desktop applications while C# is ideal combined with ASP.NET for web applications. However, I am considering to teach myself more about software development for the Mac. Xcode and Cocoa would be the environments to start with. Learning new languages is no problem for me!
However, before starting to write code on a Mac, I first need to buy one and they're reasonable expensive so buying one is a decision that will take me a few months before I know which one I need. So, to help me right now, I would like to know the possibilities that I have to learn more about Mac development without the need for a Mac!
For example, does OS X work in a VMWare environment? Are the development tools also available for Windows? Is there a clear API overview of the OS X libraries?
Or should I first buy a Mac, play with it for a few weeks and then decide on how to develop software for it? In other words, should I start spending now, or in a few months? :-)
Perhaps a macmini would be the best bet but failing that:
MacOSX in VMWare: http://wiki.osx86project.org/wiki/index.php/Vmware_how_to
Development tools for windows? I'd stick to XCode as it can compile multi-binary apps.
Here's the clearest overview I can think of: http://developer.apple.com/referencelibrary/MacOSX/index.html
Hope this helps!
Mac OS X works in a VMWare...
Unfortunately XCode works only on Mac OS...
There are versions of Max OS, which runs on x86 machines. You can avoid buying a Mac PC, but you have to pay for the OS and XCode...
EDIT: Xcode is free
You definitely want a Mac if you want to develop for the Mac. Even Java requires local testing.
That said, Macs are not very expensive and run Windows too.
If you want to learn and start programming before you have a Mac, I recommend either Java or .NET, specifically Delphi Prism.
See here my own first experiment with Delphi prism:
http://leaukiprog.blogspot.com/2009/07/delphi-prism-first-experiment.html
You can write a program for Windows, keep GUI code and other code separate and later replace the Winforms GUI with a native Cocoa GUI on the Mac.
I found that Pascal is a good language for accessing native APIs from .NET. Everything looks cleaner than with C#, I think.
The new version of Delphi Prism is coming out on the 25th, as far as I know.
You might also look into the GNUstep project. This will let you experience objective-c a little bit before you make the plunge, albeit with the GNU libs instead of cocoa.
Good Mac (or iPhone) software is an artisan product; it reflects the culture and tastes of Mac (or iPhone) users. Because the Mac is a premium platform, users tend to be more sensitive to the feel and polish of the apps. Thus to successfully program for the Mac/iPhone or even grok the Cocoa frameworks properly, you have to grok the Mac user experience. Although many coming from the Windows or other-UNIX world try to skip this step, they do so at their own peril.
So, as a Mac developer (who also writes for other UNIX OSes), my recommendation is buy a Mac and start using it, full time if you can. A Mac Mini is completely adequate for development and will set you back only a few hundered dollars, including the OS. Consider that on Windows, this is often less than the price of a full VS license. Everything else (Xcode, libraries, etc.) are free.
Once you have a Mac and begin to grok the feel of things, you'll discover that there are a number of development options. Besides the Cocoa frameworks--which can be used from Python (via the built-in PyObjC bridge), Ruby (via MacRuby or RubyCocoa)—-there are a number of other options. Qt from Nokia and Mono are viable. Often cross-platform apps written in Qt or Mono are disliked on the Mac because they don't feel "native" (see above), but really the problem is not the framework. If you get the Mac user experience you can write a very passable Mac app in a cross platform framework. You just have to intend to write a Mac app, not get a Windows app working on the Mac.
If you code in RealBasic or Lazarus, you can run and compile your apps for both Mac OS and Windows (and Linux in the case of Lazarus). RealBasic isn't that popular outside of the Mac Platform, and isn't free. Lazarus is still a little rough around the edges, but is basically a free version of Delphi.
Lazarus is working hard on a native COCOA port with the next major version of FPC (though that will probably be available only in 2011)
Macs use Objective C. The APIs are very useful and there are many tutorials online. You'll be using Xcode, the Mac equivalent to Windows' Visual Studio and Linux's Glade.
I love making cross-platform applications. In a few hours I can prototype an application in Mac and publish it online. Then it'll take a day or two to port to Windows.
A Mac looks expensive, but it's not if you look what you get for your money.
It is entierly up to you if you buy one or not. I guarantee you'll have a lot fun with it, next to programming. If you want a cheap Mac, just buy a Mac Mini for 500 dollars, which you can connect to the Display you already own.
I recommend doing this on Mac OS X rather than Windows, but again: it's up to you.
P.S. You can use VMWare, but I think it's slow if you have less then 4 GB RAM.
A Mac really isn't that expensive if you go down the second hand route, I was put off by the price of brand new Macbooks so I got a late 2007 model for £350 and added an extra gig of RAM to it.
Reasonably priced, less hassle for development as well!
If you want to have just a general feeling about ObjC and the object libraries, why not giving a try to GNUStep?
Take a look at it here:
http://wiki.gnustep.org/index.php/Main_Page

Using Mac for development

I see that more and more are using Macs for development.
Why is this? What advantages does the mac have?
Except for the obvious Microsoft languages, are there any that are not suitable for the mac?
And last, what is a recommended, not so pricey macbook for programming (C++, Java, Ruby, Haskell etc.)?
A mac is Unix based and more user friendly than most Linux distrib. They also have a nice set of software. Another reason could be that you can only develop for iphone on a mac (objective C).
I've been developing with a Mac for the past 4 years and never ran into issues (or at least, not more issues than on a PC). I've been developing in Ruby, PHP, C, C++, Ada, Java... I think that all the languages will work just fine, aside from Microsoft technologies such as .NET... but then you can get parallels, VMWare or bootcamp to bypass this.
You can get a Macbook for 1000$... it's still expensive, but totally worth it.
(source: akamai.net)
I already answered a bit to this question here.
The Mac is also very nice for web development. It is very easy to set up a local development environment as PHP, MySQL (I think; if not there's an easy installer), and Apache come preinstalled. There is a lot of nice web development software for the Mac, such as Coda, CSSEdit, and TextMate.
As for software:
C++: Use Xcode. It's quite nice (though I hear it won't win many converts from Visual Studio. Having never used VS I can't comment on that).
Java: Use Eclipse. But then, you probably already knew that.
Ruby/Haskell: Textmate!
Also, for GHC, install MacPorts and use that to install your haskell compiler.
Lastly, don't pay Apple's prices for RAM upgrades. You can buy standard RAM from any supplier for much less.
Any currently shipping Macintosh will be adequate for development (Mac Mini, Low end MacBook Pro) if you are a hobbyist or have small projects.
I find a 2.53Ghz MacBook Pro fine for my weekend projects, iPhone development and script hacking. For my Day job I'd have a hard time getting by with less than a top end Mac Pro with much less modest specs.
I do .NET development regularly on my macbook pro using Parallels. The performance hit is noticeable but not enough to matter most of the time. The worst part for me is the inconsistency in moving the cursor around in applications using the keyboard (CMD + left/right, etc). I don't know if it's from me messing around with Parallels keyboard binding settings or not, but even after 6 months, I still don't know the different shortcuts as well as I do in Windows.
Mac is intensely used by designers with photoshop, ilustrator or after effects.
Also there are more and more objective c programmers which develop iphone apps.
I believe that because the only eligible way to create iphone apps is to own a mac, developers were forced somehow to buy mac in their way to create apps.

Resources