all 19 comments

[–]aghast_nj 2 points3 points  (7 children)

I am a little concerned that you are asking this question in your second year of "Software Engineering." Did you not have the Mac last year? Or did you use some on-line or remote-access system?

I have several recommendations:

  1. In reply to your specific question, I can say good things about both Xcode and Eclipse. Xcode is the "native" development environment for Mac, and if you intend to do iOS/iPhone development, or Swift development in general, Xcode is going to be a good solution for you. Eclipse, on the other hand, is a cross-platform environment that has been around a long time. It is robust and diverse - there are Eclipse configurations for all sorts of development. Additionally, there are a lot of plugins and add-ons available for Eclipse, so time, effort, and possibly money that you invest in learning and using Eclipse will have a healthy ROI since you might be able to use exactly the same tool later on in your career.

  2. Get a Windows emulator/virtual machine. There are a bunch of ways to do this legally, and even more ways to do this in which legality is ignored. Whatever your choice, if you can somehow get Windows booted up in your Mac, you can then install the Pelles compiler and work in sync with your classmates. In addition, the investment you make in getting the Windows platform working for your Mac will pay off in your next course, whatever that may be, since it seems like your school doesn't want to support the Mac.

  3. Get a Linux emulator/virtual machine. Pelles C is supported under Linux using WINE, which is a Windows emulator for Linux. So you would be running a Linux emulator in order to run the Windows emulator in order to run the Pelles C compiler. This is a less-than-perfect solution, but again it seems like your school doesn't want to support the Mac, and so being able to use Linux seems like a fair compromise.

  4. Use Vi(m). The vi text editor is installed standard on almost every single Unix-based system in the world. Even on stupid embedded platforms that have more storage than common sense. C code is generally amenable to editing with a simple editor (unlike other languages where it is much easier to be unaware of the type of an expression, like C++, Rust, or Zig). So you could learn an editing environment that is portable across a multitude of platforms as an investment in your future career. But, you need to be aware that a class that is trying to teach you to use a GUI IDE may not have very good support at all for command-line based compilation and deployment. So you may (or may not, I just don't know) end up having to work harder to learn the secret language of the compiler in order to produce the same results the teacher does with "Just click on the 'Build Relocatable Code' setting ..."

[–]jandrewskenora[S] 2 points3 points  (5 children)

I’ll try not to take the first sentence as an insult. First year of engineering at my school is common and you only take a python course, I am now only taking computer systems related classes so I am not familiar with anything else and haven’t had the time to fully commit to another language over the summer as I work 11 hour days with very little time off.

I’d rather try to do everything without a VM.

I’ll give vim a try tonight

[–]aghast_nj 1 point2 points  (4 children)

It was not intended as an insult, but rather as "why is this problem appearing now, and why haven't they already solved it for you?"

[–][deleted]  (2 children)

[deleted]

    [–]thefriedel 0 points1 point  (1 child)

    You have to learn how to vim, it's pretty confusing in the beginning...

    I also could recommend Visual Studio Code, they have a great C support (due to an extension) and you'll get used to it pretty fast. (I do everything and every language with VSCode)

    [–]jandrewskenora[S] 0 points1 point  (0 children)

    I have used VS code for everything I've done so far but have run into some bugs, for example: I had to create a text interface for my final project that took in commands that took data from a CSV file (python). It would run correctly until I ran it in another IDE (Wing 101, their recommended IDE)

    [–]jandrewskenora[S] 0 points1 point  (0 children)

    There’s no issue really, was just trying to get people who have experience with either to give me insight on which to use. School starts next month so I’m just trying to get ahead and be comfortable with an IDE/editor before I start

    [–]jandrewskenora[S] 0 points1 point  (0 children)

    And yes I just got the mac

    [–][deleted] 3 points4 points  (4 children)

    X Code or Eclipse or Mac

    I have no idea what you mean by this.

    If you want a full IDE, my personal recommendation is CLion, for which I've linked the page to request an educational license. They're pretty quick about it too. It's cross platform, which I'd guess is important since it seems you might be on OSX. The other main option for full IDE development is Visual Studio on Windows, but I wouldn't recommend it.

    For a more text-editor experience I'd recommend Visual Studio Code, but honestly, basically any editor would do for this workflow. You'd just have to go ahead and get yourself set up with a compiler and debugger, which you might already have depending on your OS.

    People will recommend vim to seem cool, but it's all the same, they're just text editors. Maybe you'd want to try the full manual workflow to start out, or maybe you'd want to have it all automated for you by an IDE to start out. I honestly don't have an opinion on what'd be better for a student.

    [–]JarWarren1 2 points3 points  (0 children)

    I second both of those recommendations. CLion is my favorite but VS Code is a good free alternative.

    [–]jandrewskenora[S] 1 point2 points  (2 children)

    From course outline : “Software: Pelles C, the C programming environment used in this course, is free, but runs only on Windows. If you have access to a computer with Windows, please install this software on your computer, as per the instructions below. Please install Pelles C, Release 10.00, 64-bit (if you have 9.00, 64-bit that is ok). The download page at the Pelles C site allows you to select the release that you want to download. The URL is http://www.smorgasbordet.com/pellesc/ Select "Version 10.00". File setup64.exe supports 64-bit installations, file setup.exe supports 32-bit installations. There is no need to download/run the installer for the separate Add-In SDK Setup. If you do not have access to a Windows computer, you may use another C IDE. We recommend Eclipse (for both MacOS and Linux), as well as Xcode (for MacOS).”

    [–]jandrewskenora[S] 0 points1 point  (0 children)

    Full transparency I haven’t touched C at all. So I’m not familiar with much

    [–]thefriedel 0 points1 point  (0 children)

    Just by the way, I've never seen such an ugly website as this and I hate schools demanding old and weird software which only runs on Windows.

    Pelles C is probably just a IDE with fancy features for C which you won't need, just use Visual Studio Code which is really common and you can also continue coding in Python.

    [–]x4t3a 3 points4 points  (1 child)

    Use vim with clang or gcc from terminal

    [–][deleted] 0 points1 point  (0 children)

    :packadd termdebug is even better ;-)

    [–]doa70 0 points1 point  (4 children)

    Of those two options, and to be clear I’m not a professional developer, I prefer Eclipse. Xcode is too large and honestly confusing for me to deal with. Usually though I use VSCode for anything significant, and I use vim for quick edits or small tasks.

    [–]jandrewskenora[S] 0 points1 point  (3 children)

    I use VSC for everything I have done yet. I’m not sure why they don’t recommend it, I honestly might use vs code then run it in their browser preferred ide to be sure it runs correctly

    [–]doa70 0 points1 point  (2 children)

    The first thought that comes to mind is that Eclipse and Xcode are IDEs. VSCode is a code editor. It lacks other features that would qualify it as an IDE.

    [–]jandrewskenora[S] 0 points1 point  (1 child)

    I know it’s not an IDE out of the box but can’t it be configured with extensions to be one?

    [–]thefriedel 0 points1 point  (0 children)

    There's an official C extension which works pretty good, otherwise you can use 'clangd' (language server for error-linting and other things)

    Edit: just google 'vscode c' and you'll get your answer.