Is Netbeans equally awesome for Ruby development on the Mac? - ruby

I realize most Ruby development on the Mac uses Textmate but I love Netbeans in the Windows environment and am wondering whether it's equally awesome on the Mac - even if it's swimming against the stream a little bit, would Netbeans pose any issues as a Ruby IDE on the Mac?

It won't pose any issues, but it doesn't really give you many benefits over using another editor - they are all practically the same, it's just the workflow and small bits of functionality that change. I guess it's down to personal preference - if you feel comfortable with Netbeans then it's fine for you to use it. However, TextMate is very popular because it does give a good level of built-in support for Ruby and Rails, it's a lot faster than Netbeans, and feels much more like a native app (which of course it is).
Ultimately it's up to you and what you want to get out of your editor/IDE.

I've used Netbeans extensively on Mac and PC. For the Mac, it's essentially identical -- one subtlety is the interplay between ctrl and cmd (apple key). On the Mac, as for other Mac apps, cmd often performs the same role as ctrl on the PC, and ctrl is the same as right-click, for instance, cmd-clicking on method names / class names / render fragment names jumps to that file (if it can find it) and all the other Rails goodness that comes with 6.5+.
Netbeans + growl + autotest = awesomeness.
I also own Textmate but never been convinced.

I am another that is not convinced by Textmate or "that it is a lot more than that". For me it constantly broke and filled my code with logging messages. I think Textmate is living on glory days of when it was the best rails editor you could get. For me Netbeans is much better as a rails development environment unless you are of the hardcore, never use a mouse persuasion. All the cool snippet features ( which was Textmate's big deal ) have been replicated in Netbeans. It is slower, but not that slow, and good coding is not a race.
AND
Netbeans is free!!

Related

Ruby GUI support on OSX Mavericks (Not Shoes or Ruby Motion) plus OSX app package support

This has been asked many times. Some of the answers are pretty old now. I have looked around everywhere for 2 things.This the last resort before I give up. Looking for:
Bindings that will enable GUI programming using Ruby (not Shoes) using Mavericks. I have found plenty bindings but with no activity for the past 3 or 4 years, with the exception of RubyMotion which seems very expensive while not taking advantage of Xcode features / does not have an IDE.
Way to package app for users as a regular OSX app so the user does not have to install anything by hand on OSX (if mutiplatform even better to target Windows too)
I have fallen in love with Ruby but without a means to tackle the above will be difficult to deploy for users, while I am not interested in Rails.
Feels like Rails popularity has in effect killed Ruby by putting it into a niche when it could be so much more.
Any new news on either of these 2 fronts or everything is abandoned / dead ?
Should I move on with Python / Objective-C ? (Which I like both but enjoy Ruby more)
I succesfully compiled scripts with tk, green shoes and gosu as a GUI to an executable with ocra but only have experience doing so on windows. If you want an actual, cross platform GUI try the java swing framework with jruby, here an example.
If you deploy a JAR or an executable nu further installations are needed.
I suppose you use MRI ruby now, the step to jruby is not so difficult.
require 'java'
# With the 'require' above, we can now refer to things that are part of the
# standard Java platform via their full paths.
frame = javax.swing.JFrame.new("Window") # Creating a Java JFrame
label = javax.swing.JLabel.new("Hello")
# We can transparently call Java methods on Java objects, just as if they were defined in Ruby.
frame.getContentPane.add(label) # Invoking the Java method 'getContentPane'.
frame.setDefaultCloseOperation(javax.swing.JFrame::EXIT_ON_CLOSE)
frame.pack
frame.setVisible(true)
RubyMotion is the best alternative. But if don't want to spend the money you should be able to use macruby.
Here are some resources
http://blog.phusion.nl/2010/03/12/creating-our-very-first-mac-application-with-ruby-how-exciting/
I must say that using macruby for a big project might not be a good idea. You should expect stuff breaking and few support. As of 2015, the [MacRuby page on GitHub][3] says that the project is in an indefinite hiatus due to the changes made by Apple in the Objective C garbage collection support that MacRuby depends on. They suggest using RubyMotion.
RubyMotion seems to be really good for what you want but for development the lack of a IDE is really a huge downside. Also from my experience rubymotion only comes handy if you already know the cocoa framework really well.
So my recommendation is for you to test rubymotion if you can. They give your money back in the first 30 days if you only want to try it out. So if you have the money give it a try.
If you are new to osx development and only want to develop for osx I think you should go with objective-c. The language is not that bad and you will get the best development environment available for it for free.

PC to Macbook Pro Transition - Getting (re)started?

I'm in my second computer science course right now. I've enjoyed programming so far, but really have just scraped my way by. I've not done much programming outside of required class work. For similar reasons, I never really invested in downloading/learning software to help me program (IDE's, editors, compilers, etc).
I know it sounds tedious, but my current setup is: notepad++ for coding; Filezilla to transfer .cpp & .h files to school's aludra/unix and compiling; unix tells me where my bugs are and I go back to notepad++ to debug; repeat until done.
This isn't fun - and I know it could be easier. But I put it off knowing that I was soon going to switch to a Mac. And, tomorrow, I'm switching.
So...
How should I set up my Macbook for the best programming experience?
What IDEs and editors and debuggers and so on should I download?
How will Mac programming differ from PC?
I'm open to all ideas and comments, even the most basic.
(Background - I'm learning/programming in C++ right now. Next semester, my classes switch to Java. I'm also going to take a class in web development, with HTML/CSS/Javascript/PHP. My new laptop will be a late 2009 Macbook Pro with Leopard, or maybe Snow Leopard. Free would be preferrable for all programs.)
Thank you all.
How exciting for you, I'm sure your new lappy will be able to make your life as a novice programmer much, much simpler.
Here's what I would do.
Download and install eclipse. It's free, and it's a very good IDE to have if you're going to program java. There are versions available for c/c++ and php as well, and there is a silly amount of great plugins for just about anything you'll ever need. Get it here.
Get the subversive plugin to your eclipse. It will make your life so easy when it comes to managing your code through svn. You can download the plugin through eclipse.
Download Ruby. Ruby is (imho) a great language for beginners, and the irb environment is very handy for trying little things out. Get it here.
Get emacs. Emacs is a great editor, and it's free. Use it for editing your system files, or for coding if you find it suits you. Get it here. (I can also recommend Textmate, it's a really good editor, but unfortunatly not free. If you want to spoil yourself a bit, though, I'd really recommend it.)
If you're doing modelling, you should definitly treat yourself to a licence of omnigraffle. It will definitly make your life easier, and it will let you draw models like nothing else. Get it here.
I would advise you not to bother with macports. Generally I find it will install everything, everyone and their dog on your lappy evertyime you use it, and that gets tedious pretty quickly.
If you're doing any php-stuff, get MAMP. MAMP puts you three clicks away from a running apache, mysql and php-setup without you so much as thinking. Very good piece of software, I think. Get it here.
For the rest of it, just download stuff when the need arises. Most of the things you'll need to install comes in handly little installer packages, and you won't need to know much in order to get them installed and working on your computer.
All the best of luck to you!
You definitely need Developer Tools from Apple. They include:
XCode, a very good IDE and editor
InterfaceBuilder
gcc, g++ and clang to compile code, in various versions
gdb as debugger
Instruments for performance analysis
as well as a lot of other utilities to program in C, C++, Java, Objective-C and Objective-C++.
Python, Ruby and PHP interpreters and libraries come preinstalled with every Mac so don't bother installing it by hand. (the Apache web server is also included, so you only need MySQL to have a full MAMP stack)
The Developer Tools package comes with every MacOSX DVD but I recommend you to download the latest version directly from Apple (it requires a free Developer account).
Once you installed it put XCode in the Dock and that's it! No other stuff needed.
NB: This is the simplest and only supported way of getting compilers and debuggers for C-based languages, even if you won't use XCode as an editor.
Speaking of editors, I recommend you to stick to XCode for a while because it is simple enough, yet very powerful, and it's free.
If you don't like it try TextWrangler (free) or TextMate (paid).
Vim and Emacs are two other good editors, but I don't recommend you to try them right now because they use obscure and non-standard key combinations, so you will spend a lot of time learning how to use them instead of programming.
Anyway the best thing you can do is to learn one editor very well, the effort in learning it will surely pay off every day.
Eclipse is the best editor for java. It's available on a mac for free, just as it is on windows.
There's a good text editor made by barebones software called text wrangler. It's free, and is good about syntax coloring for basic editing.
The best of the best for web development on mac is a tie between text mate and coda. If you're going to be doing a lot of web development, they're worth the investment.
To run a test environment in mysql/php, download MAMP (the mac counterpart to WAMP). Google search it - it's free, and really easy.
Mac programming doesn't differ at all from windows programming if you're writing java, php, etc., because it all goes the same place. Java just boils your code down differently depending on your machine, but it does the same stuff. PHP will probably be held on some sort of linux distro, so it's the same on both. C++ is the same given the appropriate compilers.
Enjoy your mac!

actionscript development on mac

I know of FlashDevelop for windows but how about developing actionscript or haxe on a mac? besides flex plugin for eclipse, flex builder and FDT is there anny good IDE out there for actionscript development on mac? I would really like to se a good plugin for netbeans but it looks like all the projects on making something like this has halted.
I have tried using MacVim with various plugins but i never get it to work and it looks to be a hard learning curve to get starting using vim.
What is people using to develop actionscript/haxe on a mac?
I use TextMate with the ActionScript bundle. But, that is a far cry from a decent development environment.
FlashBuilder or FDT are probably the best options. I've spent a lot of time looking for a good free option - though I haven't done a check in the last 6 months, or so. The actual Flash IDE might be the best no-additional-cost option, if you use Flash.
There is supposedly a way to set up your environment to use XCode, a stand-alone compiler, and one or two other things, but I could never find good documentation or evidence of someone actually getting things working.
There is, or was, a Mac version of SePy, but it was horrible, as of a year and a half ago when I gave up on it.
I've been using FlashBuilder on my work machine for Flex work, but I think I'll start using it on my personal machine for Flash work. Just haven't come across anything else that even approaches a modern dev environment for Flash.
Sorry I don't have more helpful information. Would love to hear someone say different.
UPDATE: Found some so-so info on setting up various elements of a full development environment on Mac, using free tools. Doesn't look like a lot has happened on this front in the last two years.
OpenCode - AS2 and AS3 language definitions for XCode. This goes back to 2006, but may still be completely useful.
Xcode and the Flex SDK - A tutorial on setting up a code and compile environment with XCode and the mxml compiler. Author notes that the information may not be 100% accurate and lost interest once he started using FlexBuilder.
Make Xcode a Full Featured Actionscript IDE - FlaXIDE - A tutorial on setting up a full dev environment with opensource tools. Last updated in 2006. Could be modified to work with current tools (i.e. haxe instead of mtasc).
Flex Support for Xcode 3 - Somewhat more recent info on using Xcode as an AS editor. Posted November of 2007.
Core SWF: Flex/AS3 for Xcode - Even more recent info. This seems to be the latest thing going for using open source or free tools to build an AS dev environment on the Mac. Posted July of 2008. This project is up on Google Code and contributors are welcomed.
I have heard good things about IntelliJ IDEA lately but haven't really tried it out myself. I use TextMate, the AS3 bundle and Flash CS4.
The best thing would probably be if FlashDevelop was ported to Mac, but as I understand it, that is not about to happen, despite years of requests for it.
Check out the "sugar-hx" textmate bundle. There's an overview here:
http://haxe.org/com/ide/textmate/sugar_hx_textmate
It includes the compiler-based contextual autocompletion, import helpers, build helpers, and output embedding for swf and js.
I know this is old, but I stumbled upon it, so I suppose other people might as well.
I'm using Sublime Text 2 for AS3 development, and I'm quite happy with it. I use alongside the Flash IDE.
http://www.sublimetext.com/
It's a very powerful and customizable text editor. It's similar to TextMate but much faster and modern... and also cross platform. Many people (like me) got fed up waiting for TextMate 2, and started using ST2.
ST2 is way too deep to number all it's features, but here's a good introduction:
https://tutsplus.com/course/improve-workflow-in-sublime-text-2/
Instead of bundles or plugins, there are packages. ST2 includes a basic AS3 package, but many people are developing their own. Here's mine (still in beta):
https://github.com/PierBover/as3-utils
For Haxe, I'm using gedit on both Mac and Ubuntu. There is a plugin for Haxe which includes syntax highlighting and code completion.
For installing the plug-in on Mac, put the folder
"haxecodecompletion" and the file "haxecodecompletion.gedit-plugin" inside "/Applications/gedit.app/Contents/Resources/lib/gedit-2/plugins".
Similar for the syntax highlight but a different folder.
There is Flasm (which is a working AS2 Disassembler) and perhaps with permission by its creator, who is not updating, re-produce it into an AS3 Disassembler?
I have had this working, and was for me as close to RABCDAsm / Yogda as I could get.

How can a Windows programmer be sufficiently productive on Mac OS X?

I've been using MacBook Pro for a few months at home, and I was wondering if there's a good book or guide that can help me be a better programmer on Mac. Maybe Mac-equivalent of Beginning Linux Programming. Note I am not looking for resource on how to program Mac application, instead I am looking for more general guide of using Mac for general development environment.
As a background, I am a Windows programmer by day. I've also done some Linux and BSD over the years, esp in school, like socket programming, graphics, make install type stuff. At home, I'll be doing Java, Scala, PHP, etc. on Mac.
So far, I've been using Eclipse, QuickSilver, and TextMate. VMWare Fusion, XCode and NetBeans are set up, but I don't use them. A DVI KVM switch is hooked up to real keyboard, trackball, and monitor. Recently stayed up till late fighting with MacPorts, and figured out I needed x86_64. The most struggle I had was configuring PHP. I don't know why they don't ship with MySQL and GD library. I eventually figured it out Googling around, and built the extensions from source. I have a feeling that I didn't get the memo and didn't read some basic guide on how to become a programmer on Mac, like how the whole architecture works. How can a Windows programmer be sufficiently productive on Mac OS X?
Related: Setting up a Mac for programmers
Edit: The specific type of application I want to develop doesn't really matter in my opinion. It could be Java, Scala, PHP as I mentioned or Cocoa, C++, or whatever.
What I am looking for is specific book, resource, advice on how to be more effective programmer on Mac, preferably something beyond "install XYZ".
Having converted from Windows to Mac OS X about five years ago, I often find myself thinking the same thing. I just cannot be productive on Windows (as much, I can be productive) as I can on Mac OS X.
To be honest, there are lots of small differences between Mac OS X and Windows. I find the biggest reason for people thinking like this (at it normally only applies to gamers and developers) is that they are trying to use the Mac like a Windows machine. You need to learn to accept that you have to use the command key, not the control key, etc.
It sounds like you are using a Mac because you have to as opposed to because you want to. It really is a much better platform than Windows once you get used to it.
I think a lot of Windows programmers come to Mac and don't try to learn it properly because they are complacent thinking they know it all because they have "used Windows all their life". I guess once you discover Spotlight, Expose, Mac OS X Keyboard shortcuts, etc. You will find your self being MUCH more productive that you ever were on Windows.... and its actually a fun OS to use.
Checkout some of the best Mac applications you can get here and here. You can also do a search for "top 100 mac apps".
Also, I noticed you were trying to setup some kind of web server directly into Mac OS X. It does ship with one, but if you are going to add MySQL and some other extensions I wouldn't go the MacPorts route. Get VMWare Fusion or VirtualBox (open source) and run the server in a VM. Much cleaner. I have a subversion/trac FreeBSD VM that handles my local version control.
I would like to add that if you don't presently use Xcode, you should definitely learn it and use it asap. It's a much nicer IDE to use than Visual Studio and it will make your life much easier.
Don't forget you have probably spent years on Windows help sites, you're going to a small degree need to do that with the Mac. Whenever you have a problem about using the Mac, ask a question on ServerFault. We are all more than eager to help you out.
Good luck.
You seem to want an overview of how Mac OS X works at a system level, more than recomenations about tools and so forth. If that's the case, I'd start with the (very basic) Mac OS X System Architecture Guide from Apple, then move on to Getting Started with Mac OS X, which should give you enough of an overview to get started.
It's not clear from your question what you intend to actually make with your programming time, but if you decide to persue Cocoa/OS X development, I recommend Cocoa Programming for Mac OS X by Aaron Hillegass.
I have a similar situation like yours. I use Windows for development and about a year back purchased a MBP for home (as I shifted to an office). I find it really difficult to get any real work done on my MBP. Somehow am used to the Windows environment with dual screens. But let that not stop you. A couple of software which I suggest you should get are:
Transmit - Good ftp client
MAMP - Runs a webserver nearly out-of-the-box. Good for basic development
Quicksilver - Helps in quick finding of applications
Spaces along with gestures (Configure your gestures to move from one screen to another, I use three fingers glide. its amazing)
Entourage - for email
Terminal - for ssh (putty alternative) (included)
Dreamweaver/BBedit/Textmate (all pretty decent. but i love editplus on windows. not a fan of IDE)
I assume your question is not about learning COCOA and more about being more effective using a MAC. Well, the above tools might help you.
Unfortunately, your question isn't very clear as to what you really want.
If you're looking to write anything cross-platform, it can be very helpful to have a virtual machine for testing. When in Linux, I've always used VirtualBox, and it works on OS X as well.
Also, as for choice of IDE, a lot of it comes down to your preference. Eclipse is nice because there's a plugin for almost everything for it. My experience with TextMate is limited, but my local Ruby Users Group swears by it.
Finally, a suggestion for not just Mac, but any platform really. Learn your hotkeys, set up new ones for things you commonly do, and use them frequently. Not having to take your hands off the keyboard to click a mouse through a few menus can really improve productivity. It may take a little time for them to grow on you, but once they become second nature, you'll wonder how you lived without them.
Basically, you can apply all your Linux/UNIX knowledge that you already have to the Mac. If you use the Terminal (/Applications/Utilities/Terminal.app) you can run all your favorite UNIX commands. Mac has a special command called "open" which is equivalent to the Windows "start" command (used to launch programs and files). You can also use "open -a" to open an application by name (e.g. "open -a Finder").
You might want to reconsider Xcode. Xcode opens more quickly than Eclipse and provides very good syntax highlighting, brace matching, block indenting, and more. Xcode doesn't have to be used as an IDE, you can also use it as a code editor, just like you are currently using TextMate.
For code editing (and everything else), try Aquamacs (http://www.aquamacs.org). It's a Cocoa-native build of Emacs, and it's brilliant for any programming task.

Getting started with Mac development

How long does it take for an experienced Windows programmer to learn writing simple software for Mac OS X?
Where does one start and what tools will be necessary?
THIS. I came from a Win32 API background programming lately a lot in C# and I was able to pick up on Objective-C and Cocoa very quickly by working through the book. You will be pleasantly surprised, the APIs are very rich and just wonderful. Reflection is a first class citizen which makes things very easy.
Xcode is of course free and available on your Mac OS X installation disk.
Edit: it took me about 2 weeks to come up to speed and write simple applications. I think this is because the language and API are easy to learn and use and Aaron Hillegass's book was a big help.
You might want to check this post for info - pretty much a duplicate question to this one. Definitely just go with Xcode and I think you'll find the Mac community pretty helpful - I have, at least.
Start by checking out the Apple Developer Connection. There's a lot of documentation there. OS X comes with all the development tools you need to get started, just install XCode from the OSX CD.
I would start here:
http://www.cocoadevcentral.com/
It's a great site with good resources on learning obj-c and cocoa.
This is also a great book:
http://oreilly.com/catalog/9780596003012/?CMP=AFC-ak_book&ATT=Learning+Cocoa+with+Objective-C
Well, first you get a hoodie and a smug sense of entitlement....
All kidding aside, the Aaron Hillegass book, a great idea, and the Apple doco are all you need to get started (oh yeah, and a Mac). I think the biggest barrier for me was figuring out Xcode since I come from a Visual Studio background.
How long it takes is a function of the level of your interest and your passion about your project.
The tools have come a long, long way since the days of Interface Builder in Mac OS X 10.0, that's for sure.
I guess the "how long" question would depend on what languages you are used to using.
In terms of reference material, I have heard good things about "Cocoa Programming for Mac OS X", and I'd love to have time to play with it for myself. Unfortunately, the day job takes up enough of my time. :)
CS193E (from stanford) is a nice course. Lots of material. Really understanding the use of class clusters, delegation, etc. takes some time, getting started does not.
"Step into XCode" is a great intro to the development environment; since the book works through taking a simple command-line linear regression program all the way to a fairly sophisticated application (Core Data, Spotlight importers, etc.), you'll learn quite a lot by osmosis.
It's the little things... On
Windows, I liked the PowerToy called
"Open Command Here" that allowed me
to open a DOS CMD window from
Explorer and automatically set the
current directory. On the MAC, I got
"On My Command" which allows you to
create simple macros easily, and
comes with a library of useful ones,
like "Open Terminal Here", "New text
File...", etc.
Install Eclipse. I loved using
Eclipse on Windows, and it works
great on the MAC, making me feel
right at home. I even found that
Eclipse has plugins for Perl and
ActionScript.
Learn Unix (if you don't know it
already). I had years of Unix
experience prior to programming
Windows, and it comes in handy.
Knowing Perl helps a lot as well.
I started my new position last
October, which was when I made the
switch from Windows to MAC. By March
I was fairly comfortable in my
understanding of things. Then again,
my development platform is AS2 and
AS2 in Flash, which is
cross-platform.
An alternative is to try out the Qt SDK, and write cross-platform applications that run on Windows, Mac and other platforms.
I started learning Qt when I joined Qt software, and it didn't take long for me to start writing simple software, even though I don't work as a developer.

Resources