Jump to content

Am I an Idiot?

GrahamCracker47

I have been debating if I should learn Swift or some other language. I am an avid Mac OS X user, and I want to start programming apps for the Mac OS X and iOS platform. But I feel as if I could get more use out of something like C. I need some help. Thanks!

Link to comment
Share on other sites

Link to post
Share on other sites

15 minutes ago, GrahamCracker47 said:

I have been debating if I should learn Swift or some other language. I am an avid Mac OS X user, and I want to start programming apps for the Mac OS X and iOS platform. But I feel as if I could get more use out of something like C. I need some help. Thanks!

The way to program is first look at the platform you wish to program for.

You have done this.

Next, look at what the most popular language on that platform is.

Learn said language.

There is no profit.

 

NOTE: I no longer frequent this site. If you really need help, PM/DM me and my e.mail will alert me. 

Link to comment
Share on other sites

Link to post
Share on other sites

well you're kinda stuck with either Swift or Objective-C for Mac / iOS development. but Apple is pushing for Swift, check it out

 

edit: There are cross-platform frameworks that can help simplify things, such as Cordova. that way if you want to try Java (for Android development) 

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, Technicolors said:

well you're kinda stuck with either Swift or Objective-C for Mac / iOS development. but Apple is pushing for Swift, check it out

 

edit: There are cross-platform frameworks that can help simplify things, such as Cordova. that way if you want to try Java (for Android development) 

Cordova is primarily JavaScript, HTML, and CSS and is a cross platform option for developing apps. You can make Java Android plugins but I don't think they can be used on iPhone, only the normal JS, HTML, CSS.

Web Developer and Java contractor

Link to comment
Share on other sites

Link to post
Share on other sites

Swift is very popular and very useful. Once you learn swift, picking up other languages won’t be difficult. Swift is made for developing for Apple products and since you own them it’s perfect for you! 

Link to comment
Share on other sites

Link to post
Share on other sites

3 hours ago, fpo said:

Swift is very popular and very useful. Once you learn swift, picking up other languages won’t be difficult. Swift is made for developing for Apple products and since you own them it’s perfect for you! 

But what is the use of swift outside iOS apps? Shouldnt a multipurpose, cross platform language be better?

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, fpo said:

Swift is very popular and very useful. Once you learn swift, picking up other languages won’t be difficult. Swift is made for developing for Apple products and since you own them it’s perfect for you! 

So, I have no experience with Swift and can't speak to its merits, but it does put you in Apple's walled garden and the problem is that Apple can crush anything you make on a whim. They may not be as evil as Facebook but they far from saintly and have done this in the past with a number of popular apps and they will likely do it again. Think of it like Youtube and all of the people who decided to rely on creating channels for living - and then without doing anything wrong were cut off from all revenue. You never want to be locked into somebody else's platform.

 

Also, getting traction in the app store is extremely challenging due to the amount of bloat. Most apps are downloaded less than a hundred times, many are never downloaded. Now, if you plan to get paid as a contractor by somebody with pockets deep enough to market their own apps - great, take their money and learn a ton. But if you don't have a huge amount of money on hand, I would strongly suggest web apps instead. They can not only be used cross platform as standalone responsive sites but they can also be packaged into apps with Cordova as already mentioned (its also called Phonegap).

 

Also, you could make regular websites - the pay isn't as high but the barrier to entry is lower and as well as making sites for others you could leverage your own skills, interests or hobbies and turn them into a business.

 

 

So...TLDR, if you only learn Swift then Apple could give you a Swift kick in the wallet at any time.

Web Developer and Java contractor

Link to comment
Share on other sites

Link to post
Share on other sites

@wasab @programmer 

its still learning the fundamentals. 

 

Bpuncing between what to learn wastes a lot of time. And as I said and I believe wasab May agree on is picking up a new language isn’t that hard. 

 

Lets say say you’re a pro in swift. Now you want to program android, learning Java is a lot easier now because you already understand the concepts. 

 

In the beginning, the language isn’t that important. Swift will get you up and running on something you have. C does work too but it’s arguably much more complicated. But python, objective C, Java, Lua, C++, F#, SQL, manjaro, PHP, matlab and many other technologies work. You have to pick one and I say pick swift. Once you’re good at that you can get a job with it. If you want to learn a different language, it’s like going from driving an automatic car to a manual car. There are differences but there’s a lot of the same stuff in both so it’s not too hard to figure out. 

Link to comment
Share on other sites

Link to post
Share on other sites

6 hours ago, fpo said:

@wasab @programmer 

its still learning the fundamentals. 

 

Bpuncing between what to learn wastes a lot of time. And as I said and I believe wasab May agree on is picking up a new language isn’t that hard. 

 

Lets say say you’re a pro in swift. Now you want to program android, learning Java is a lot easier now because you already understand the concepts. 

 

In the beginning, the language isn’t that important. Swift will get you up and running on something you have. C does work too but it’s arguably much more complicated. But python, objective C, Java, Lua, C++, F#, SQL, manjaro, PHP, matlab and many other technologies work. You have to pick one and I say pick swift. Once you’re good at that you can get a job with it. If you want to learn a different language, it’s like going from driving an automatic car to a manual car. There are differences but there’s a lot of the same stuff in both so it’s not too hard to figure out. 

I disagree on the idea that picking up new languages is easy - learning just enough syntax to code simple applications (or poorly coded complicated ones) is trivial but each language has its own "best" ways to do things. For instance, few of the design patterns, practices and designs from Java are helpful when trying to build an application in JavaScript. A seasoned Java developer should be competent enough to compete with code monkeys who don't know why their copypasta, but to truly understand the stack and how to architect maintainable, extensible projects with tens of thousands of lines of code could take years (less with a good mentor - but those are in very short supply.)

 

Now I'm not saying learning Swift is a bad thing - some parts of programming are universal, there are certain to be some clever bits in there that could be leveraged across a career, and any languages that are similar to Swift will be easier to pick up - but that doesn't mean the ROI is good compared to other options.

 

I also can't comment on if going from Swift to Android would be easy - I've no experience with Swift code and have done very little Android coding but am pretty certain that web works on all but the simplest of platforms.

 

Now if the project ideas are specific to the Apple ecosystem - software that will really have an impact there and nowhere else, then run full speed ahead and learn to make it. If the ideas are broader than Apple then learn a solution stack that is broader and will be useful longer.

Web Developer and Java contractor

Link to comment
Share on other sites

Link to post
Share on other sites

Swift seems to be gaining popularity quite fast so I think it's the clear winner.  I don't know much about the language but the few things I've heard have been good.

Link to comment
Share on other sites

Link to post
Share on other sites

@programmer

we haven’t actually asked OP if he has any programming knowledge at all. If he’s starting then it can be either language but I’d say go for swift. As @fringie said, swift is gaining popularity. I was going to claim that though I didn’t have any evidence to back my claim. (I haven’t presented any in my previous either now that I consider it) 

 

If swift is gaining popularity, it leads to a career path (as many languages do) but it works best on his computer. C does work and is great but I feel swift can help him do more cool things sooner. 

 

If OP is a beginner then I vouch for swift as if else integers strings functions and while loops are mostly the same in every functional language that has them. Otherwise I’d say if OP wants to learn more about optimization and whatnot, go for C for more bare metal learning. As the question is vague and not much has been said, I stand by swift. Until there’s an explicit reason to do C, I don’t see why it’s necessary. 

Link to comment
Share on other sites

Link to post
Share on other sites

I'm not sure how any of this makes you an idiot. Picking a language is important and difficult. For first timers, Python is a good choice. It doesn't have lot of practical applications, but it gives you the basics without being overloaded with information. I started with SCHEME. I've never hated something so much in my life, except maybe when people say "I could care less". That being said, I'm still glad that's what my professor started us with. It's so limited that it forced me to think outside the box. I'm not a great programmer, but I'm excellent at optimization. When I started writing homebrew apps for the Wii, people started sending me their code so I could get 70 confusing lines down to 30 easy to understand ones. It's something to consider. 

 

C is my favorite language because it's so powerful, but it can also be very confusing. Again, I suggest starting with a simple language. I've never used Swift, but anything that only works one one platform doesn't sound like a great idea to me. 

Make sure to quote or tag me (@JoostinOnline) or I won't see your response!

PSU Tier List  |  The Real Reason Delidding Improves Temperatures"2K" does not mean 2560×1440 

Link to comment
Share on other sites

Link to post
Share on other sites

C is simple if you haven't started with anything else.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, Dat Guy said:

C is simple if you haven't started with anything else.

We must have different definitions of simple, because I consider it incredibly complex. On top of that, the sheer size of the libraries lets people write sloppy code. Restrictions are a good for beginners. When there are fifty different ways to do things (which is what I mean about overloading with information), people often don't think about which one is best. 

Make sure to quote or tag me (@JoostinOnline) or I won't see your response!

PSU Tier List  |  The Real Reason Delidding Improves Temperatures"2K" does not mean 2560×1440 

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, JoostinOnline said:

Restrictions are a good for beginners.

Said someone who recommended a Lisp.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

33 minutes ago, Dat Guy said:

Said someone who recommended a Lisp.

Have you ever used Scheme? You can barely do anything. As I said, it forces you to think outside the box. I also didn't recommend it, I just explained the benefits. 

Make sure to quote or tag me (@JoostinOnline) or I won't see your response!

PSU Tier List  |  The Real Reason Delidding Improves Temperatures"2K" does not mean 2560×1440 

Link to comment
Share on other sites

Link to post
Share on other sites

So, C is great if you already understand programming and need to create something close to the hardware - but it's far from trivial to write apps and applications in it. Its like saying assembly is simple - which is technically true, but being simple doesn't mean easy to learn or use.

 

Each tool is good for its own things. A high level OO language is good for representing things like UI's elements and actors in a game because their behavior and state are object like. HTML is excellent for representing a static text document (and awful for most things the web does today without tons of JavaScript thrown in.) C is, if well written, a way to write very fast/efficient code and is a great choice to work with mechanical things. I don't think I would want to program a robot in JavaScript or C# - but if I made an abstraction layer then those languages might let me do all sorts of orchestration easily. Use the right tool for the job.

Web Developer and Java contractor

Link to comment
Share on other sites

Link to post
Share on other sites

 

4 hours ago, programmer said:

HTML is excellent for representing a static text document (and awful for most things the web does today without tons of JavaScript thrown in.

But that is not a programming language....

 

Also, code reuse and maintenance is a nightmare for a complex app without OOP

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

24 minutes ago, wasab said:

Also, code reuse and maintenance is a nightmare for a complex app without OOP

Not if it's well optimized and designed for flexibility.  But that's a rare thing, so in general you're correct.

Make sure to quote or tag me (@JoostinOnline) or I won't see your response!

PSU Tier List  |  The Real Reason Delidding Improves Temperatures"2K" does not mean 2560×1440 

Link to comment
Share on other sites

Link to post
Share on other sites

On 4/24/2018 at 5:38 AM, JoostinOnline said:

 It doesn't have lot of practical applications

I have to disagree with you on that one. There are countless Python jobs for stuff like web scraping, AI, server-side web development, I could go on. I'm actually working on a web scraper in Python right now for a client, so I think calling Python "just a scripting language" or saying it doesn't have a lot of practical use is not doing it justice. Sure it's easy to learn, but that doesn't mean it isn't incredibly powerful.

 

edit: whoops, just realized this post is a few days old lol

Spoiler

My main desktop, "Rufus":

Spoiler

PC Specs:

CPU: AMD Ryzen 5 1600

CPU Cooler: Cooler Master MasterLiquid Lite 120

RAM: 2x8gb Corsair Vengence DDR4 Red LED @ 3066mt/s

Motherboard: MSI B350 Gaming Pro Carbon

GPU: XFX RX 580 GTR XXX White 

Storage: Mushkin ECO3 256GB SATA3 SSD + Some hitachi thing

PSU: Seasonic Focus Plus Gold 650W

Case: Corsair Crystal 460X

OS: Windows 10 x64 Pro Version 1607

Retro machine:

Spoiler

PC Specs:

CPU: Intel Core 2 Quad Q9550

CPU Cooler: Stock heatsink

RAM: GSkill 4gb DDR2 1066mt/s

Motherboard: Asus P5n-e SLI

GPU: 8800 GTS 640mb, I swap between that and my 8800 GTS 512mb

Storage: Seagate 320gb right from 2006

PSU: Ultra 600W 

Case: Deepcool Tesseract SW

OS: Windows XP SP3 32-bit, Linux Mint 18.2 Cinnamon 64-bit, Manjaro Deepin x64 (sorta)

Mac Pro Early 2008: Dual Xeon X5482s w/ 32GB RAM & HD 5770 running macOS High Sierra

More PC's

 

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×