Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
I'd prefer something like -
if controller.navigationController {
controller.navigationController.pushViewController(myViewController,animated:true)
}

controller.navigationController?.pushViewController (myViewController, animated:true)
 
  • Like
Reactions: 9052042
I wholeheartedly disagree with this.
I wholeheartedly agree with your disagreement. Well said. I think Swift on the server-side will surpass Ruby's and PHP's initial buzz and pace. Especially with major players doing things like this:

IBM has already put Swift in the cloud. That was fast. You can now create and run Swift programs from your iPad.

https://developer.ibm.com/swift/2015/12/03/introducing-the-ibm-swift-sandbox/


controller.navigationController?.pushViewController (myViewController, animated:true)
I cringed.

Sorry Javascript. I'm looking to drop you and use SWIFT all day everyday...
Doubt that'll happen (client-side), but PHP ... in about a year I'm looking forward to it swiftly going the way of Perl / the Dodo bird for me. ;)

CentOS + SELinux + Nginx + Swift *swoons*


 
Last edited:
I'd recommend not digging your heels in on this issue, and reconsider. Swift results in far more stable code once you become familiar with the language and some of its new concepts (which admittedly does take some time!). You'll be thankful for taking the time do learn it in the long run!


Programming languages seem to be like religions. The fact that he said "python" made me almost choke on my tea. Python is really only useful in a couple places, and the fact that it's cross-platform and not Perl are the main ones. C# is still encumbered by a weird license that Microsoft could enforce at any time, and he's using a proprietary game engine, and really only a mediocre one.

C++11 is a massive improvement, and I'm pretty happy using it for 3D and game development, but swift is interesting being open source. It has all the benefits of a scripting language without any of the debugging and testing problems, and it certainly runs faster than C#'s "half native speed".

The biggest problem I see is that Swift doesn't have tools yet. The IDE's and build systems are going to have to catch up, and that will take a while.
 
Not really. Swift will look very bizarre to you if you haven't done any programming at all. Maybe build gradually on top of your existing HTML knowledge with some PHP and JavaScript. Both of these have some of the flattest learning curves of all programming languages. Once you have a firm grasp of programming concepts like classes, objects, closures, scope etc, you can more easily transition to Swift, Objective-C or whatever.

I think your advice is backwards but given that you have experience I see why you said it. Assuming you know all the programming concepts, switching to SWIFT is a breeze of course.

As a non programmer or a beginner I would NOT learn other languages first. That will be the BIGGEST mistake and thats where 90% will fail. SWIFT coupled with Xcode, storyboards and auto layout is the BEST thing that can happen to a new developer. ONLY THEN did I venture into javascript and actually understand what the hell is going on.

The problem with other languages is that your IDE is whatever you want it to be and therefore if you don't have a great setup you don't know what the hell is going on. Of course assuming you got the perfect setup you are all set. But even then, as a new developer, javascript is just a little complicated and SWIFT is as straight forward as it gets. SWIFT as of now forces you to use Xcode as your IDE and some may argue Xcode is horrible, its truly ideal for new developers. It really depends on your perspective.

Overall I can only recommend SWIFT as a new developer. Begin there and venture to any other language and you will understand whats going on. With SWIFT and Xcode you can build an app and run it on your phone/simulator within minutes. The environment motivates you to learn more because the barrier of entry is just low.

Hope that helps.
 
  • Like
Reactions: crashoverride77
Assuming you know all the programming concepts, switching to SWIFT is a breeze of course.

As a non programmer or a beginner I would NOT learn other languages first.

This is a bad suggestion that many programmers who are not teachers advocate. Teachers know that a good percentage of people fail to ever learn to program their way out of a paper bag. A large set of "all the programming concepts" is extremely difficult for many people to learn at the beginning.

Interactive teaching languages, such as Squeak, Logo and Basic, which only require a tiny subset of simple coding concepts to get started, are far easier to work with by typical absolute beginners. Programming languages based on a larger set of advanced concepts can come later.
 
This is a bad suggestion that many programmers who are not teachers advocate. Teachers know that a good percentage of people fail to ever learn to program their way out of a paper bag. A large set of "all the programming concepts" is extremely difficult for many people to learn at the beginning.

Interactive teaching languages, such as Squeak, Logo and Basic, which only require a tiny subset of simple coding concepts to get started, are far easier to work with by typical absolute beginners. Programming languages based on a larger set of advanced concepts can come later.

I think you read that wrong or I articulated that wrong. Im saying learn Swift FIRST because its such a basic and "Interactive" language THEN expand into other programming languages.

i think you are basically saying what I'm saying but you didnt read my full reply nor did you catch that I was arguing this with my response to @Substance90 who was arguing the opposite (i.e. learn other languages BEFORE swift)
 
I think your advice is backwards but given that you have experience I see why you said it. Assuming you know all the programming concepts, switching to SWIFT is a breeze of course.

As a non programmer or a beginner I would NOT learn other languages first. That will be the BIGGEST mistake and thats where 90% will fail. SWIFT coupled with Xcode, storyboards and auto layout is the BEST thing that can happen to a new developer. ONLY THEN did I venture into javascript and actually understand what the hell is going on.

The problem with other languages is that your IDE is whatever you want it to be and therefore if you don't have a great setup you don't know what the hell is going on. Of course assuming you got the perfect setup you are all set. But even then, as a new developer, javascript is just a little complicated and SWIFT is as straight forward as it gets. SWIFT as of now forces you to use Xcode as your IDE and some may argue Xcode is horrible, its truly ideal for new developers. It really depends on your perspective.

Overall I can only recommend SWIFT as a new developer. Begin there and venture to any other language and you will understand whats going on. With SWIFT and Xcode you can build an app and run it on your phone/simulator within minutes. The environment motivates you to learn more because the barrier of entry is just low.

Hope that helps.


I agree. I'm strongly anti-scripting languages except for small projects. If I had to use one, it would be PHP. JavaScript would be pretty low on my list. Anyone learning a first language should learn something like Swift, Java, or C#. All those languages give a firm grasp of what you are creating and how your application flows, and they promote good design. You also don't get lost in the details. Scripting languages are actually harder to use in larger projects, even though they seem easier for smaller tasks. JavaScript in particular, since it doesn't implement object oriented behavior, but instead gives one the ability to do it oneself, is actually pretty confusing to learn at first.
 
Programming languages seem to be like religions. The fact that he said "python" made me almost choke on my tea. Python is really only useful in a couple of places.

The face that you said that about Python made me choke....

Python is a damned good language IMO, very flexible. I wouldn't use Python for everything - each language has its strengths and weaknesses. I would
Choose Python on a case by case basis like any other language.
To say that Python is only usage for a couple of reasons is a bit naive.

Programming languages can be like a religion - people need to realize that there is no one fit solution. Pick the language applicable for the job in hand and environment.
 
Last edited:
  • Like
Reactions: satcomer
Python is one of the better scripting languages, but I think it's a mistake to use it for anything of substantial complexity or with a considerable memory footprint or performance requirements. I would, however, see Swift being used in any of those cases. Hence why I choked when the original author suggested it was better. For anything complex in python, I've seen better projects that used C# or Java, for example.

A lot of algorithm research people use python for testing because it can handle large matrix operations easily, but as an example: Someone once said a particular brute force algorithm for natural language processing was untenable. I wrote the same algorithm in C++, and ran it. It ran plenty fast, minutes, even on a large dataset while it took hours or worse on moderate sized one in python, so while it was still not really fast enough for a production dataset in c++, python was just not the right language for the production version with any algorithm. Incidentally, it took me no longer to write it and a production ready version in C++ than the python version.

The only reason I'd use python is when I just want to open a text editor and type something out really fast and the speed it runs is not necessary. If it gradually grows larger and more complex, I would seriously consider rewriting it. Frankly, I don't think there is really any specific task for which python is the best choice, but I do still kind of like it.
 
Calling Python a scripting language is a bit of an insult to the language- it is a 'real' / complete language by itself - including full object orientation functionality.

Python has a fantastic developer community behind it, frameworks / libraries for many types of roles.


There are quite a few high profile applications / games / web apps that use Python - that you'd probably never know were written in Python, that are doing just fine.

Server side python applications are typically scaled horizontally for performance.

How well an application / performance is also down to the developer. Equally as important is your deployment. Is it suitable for the language / application type? Perhaps your a better c++ coder than Python - which may explain a number of factors of your experience, or C++ was the better choice in that instance ( probably the latter given your brief description)

For the type of apps I work on i'd never choose C++ - overkill and very appropriate.

Not all languages are suitable for all types of applications. I wouldn't write a web app in C++ but would do in Python or another suitable language. OTOH I wouldn't write a desktop application in Python.... Although frameworks exist to make this possible.

Hopefully we choose the right tools for the job.




Python is one of the better scripting languages, but I think it's a mistake to use it for anything of substantial complexity or with a considerable memory footprint or performance requirements. I would, however, see Swift being used in any of those cases. Hence why I choked when the original author suggested it was better. For anything complex in python, I've seen better projects that used C# or Java, for example.

A lot of algorithm research people use python for testing because it can handle large matrix operations easily, but as an example: Someone once said a particular brute force algorithm for natural language processing was untenable. I wrote the same algorithm in C++, and ran it. It ran plenty fast, minutes, even on a large dataset while it took hours or worse on moderate sized one in python, so while it was still not really fast enough for a production dataset in c++, python was just not the right language for the production version with any algorithm. Incidentally, it took me no longer to write it and a production ready version in C++ than the python version.

The only reason I'd use python is when I just want to open a text editor and type something out really fast and the speed it runs is not necessary. If it gradually grows larger and more complex, I would seriously consider rewriting it. Frankly, I don't think there is really any specific task for which python is the best choice, but I do still kind of like it.
 
Last edited:
Frankly, I don't think there is really any specific task for which python is the best choice, but I do still kind of like it.

Python is the 4th most popular programming language in the world according to the current TIOBE index so a lot of (presumably non-religious) people seem to disagree with you.

Loads of people on MR will always predict world dominance for any product Apple ever made or will make. That is really just background noise. I happen to like Swift, mostly because it reminds me a lot of Scala, which is one of my favourite languages. Scala is also almost 15 years old, has at least one clear business case, strong IDE support, and is not even in the top ten when it comes to the popularity of languages.

I think it is fair to say that Swift will no doubt come to dominate app development on iOS. Its a lovely language so I wouldn't be against it seeing wider use but I don't think that will happen within the foreseeable future.
 
Last edited:
I agree. I'm strongly anti-scripting languages except for small projects. If I had to use one, it would be PHP. JavaScript would be pretty low on my list. Anyone learning a first language should learn something like Swift, Java, or C#. All those languages give a firm grasp of what you are creating and how your application flows, and they promote good design. You also don't get lost in the details. Scripting languages are actually harder to use in larger projects, even though they seem easier for smaller tasks. JavaScript in particular, since it doesn't implement object oriented behavior, but instead gives one the ability to do it oneself, is actually pretty confusing to learn at first.

Agile dev being the rage for quite a while (I've been around since it existed as just a set of vague principles in the 1980s), quick dev. languages have become quite a thing.

Since more products get messed up because they're not actually being useful than in being coded properly. It's easy to see why they're so popular. Put up something quick, run pilot small scale pilot projects, get feedback often and hopefully crap doesn't happen. Most terrible kludges in most products are made to introduce big changes later in it's original dev or in maintenance

Implementing a properly demonstrated prototype (in another language) in C/C++ is not a big task (for me, those language are like comfortable old shoes :) once you actually know most of what the various users want out of the system/service/product.

Of course, performance is not evacuated and some user choices that have no consequences in small systems, or ones with a light load, could be boneheaded if implemented in a system that needs to scale, so that also has to be taken into consideration.

Anyway, the key to actually having a successful low cost product.
Because, in the end, making money from satisfied users
(or saving money in a corporate environment) is the goal, everything else is just blah blah blah :).

I'm a pragmatists and I've run a lot of big projects in almost 3 decades.
So, language "wars" make me laugh; I've seen so many go by.
 
Im saying learn Swift FIRST because its such a basic and "Interactive" language THEN expand into other programming languages.

Swift was not designed as a teaching language. It will likely fail at encouraging the same percentage of kids to program as did AppleSoft Basic did on Apple II's and similar 8-bit computers.
 
Calling Python a scripting language is a bit of an insult to the language- it is a 'real' / complete language by itself - including full object orientation functionality.

Python has a fantastic developer community behind it, frameworks / libraries for many types of roles.


There are quite a few high profile applications / games / web apps that use Python - that you'd probably never know were written in Python, that are doing just fine.
....
Hopefully we choose the right tools for the job.

People can successfully write a great many things in all sorts of languages that are ill suited for it. I could very successfully write a file copy script in c++. There are quite a few games written in Java, but they hit some difficult issues that they had to overcome that they wouldn't have had to otherwise. I have logical reasons why I think most scripting languages are ill-suited for many tasks for which people use them frequently, but people can overcome those things, and do -- occasionally with impressive results.
 
Swift was not designed as a teaching language. It will likely fail at encouraging the same percentage of kids to program as did AppleSoft Basic did on Apple II's and similar 8-bit computers.

AppleSoft Basic did not have iOS or App Store backing it, that is the difference; it's attractive because of that relation, plus it's form.
 
Swift was not designed as a teaching language. It will likely fail at encouraging the same percentage of kids to program as did AppleSoft Basic did on Apple II's and similar 8-bit computers.

Yes, I don't think Swift is very beginner friendly, I think C/C++ of all think is easier to learn ;-); but I've been using it so long that maybe I lack distance on this. I learned programming using Basic on Commodore machines around 1980. In university they used Pascal (little used these days) but pretty easy to learn for a procedural language, and easy then to move on to any other language.
 
Swift was not designed as a teaching language. It will likely fail at encouraging the same percentage of kids to program as did AppleSoft Basic did on Apple II's and similar 8-bit computers.

Thats such BS! It is THE language for learning to program. None of these languages should be designed to teach, they are designed for programming. Swift just happens to be one you can learn in a breeze.

let you = "old school"

Thats how easy it is! You guys stick to languages that will give you errors when you miss ";" at the end of every SINGLE line of code. YUCK!
 
Last edited:
  • Like
Reactions: crashoverride77
Thats such BS! It is THE language for learning to program. None of these languages should be designed to teach, they are designed to for programming. Swift just happens to be one you can learn in a breeze.

let you = dumb

Thats how easy it is! You guys stick to languages that will give you errors when you miss ";" at the end of every SINGLE line of code. YUCK!

You mean like missing a "." at the end of a sentence when you write... Yeah... that's really hard. (sic)

Guess we should remove all punctuation since they are a barrier to learning a language.

BTW, I already know/use Swift, and probably 100 other programming languages I've collected in 3 decades.

Swift is OK; but, for me, it is just another language on the big pile.
 
You mean like missing a "." at the end of a sentence when you write... Yeah... that's really hard. (sic)

Guess we should remove all punctuation since they are a barrier to learning a language.

BTW, I already know/use Swift, and probably 100 other programming languages I've collected in 3 decades.

Swift is OK; but, for me, it is just another language on the big pile.

No very unlike missing "." at the end of the sentence. Because if you miss a "." your whole essay won't be broken. And that was just an example of the many small annoyances of other programming languages, that swift overcomes.

what about weak and strong, synthesize. How about having to specify that a string is a string and you can't just do let myName = "AceGreen". The list goes on

My point still remains for any beginner, Swift is highly recommend because of its low barrier of entry and with Xcode's storyboard, auto layout and size classes, you can develop an app in a few hours.

PS changed my let statement to be less rude. No need to call someone anything.
 
Last edited:
  • Like
Reactions: crashoverride77
None of these languages should be designed to teach, they are designed for programming.

The Air Force tried this. Teaching newbie pilots in real planes designed for fighting. Result was a lot of dead pilots. They switched to buying slower planes specifically designed as trainers. Then later switched the successful (alive) trainees to faster more complex planes. Result was more and better (non-dead) fighter pilots.

So some programming languages should be designed specifically for teaching. Students should not be encouraged to use professional programming tools if they can't even think their way through something simpler in a teaching environment (code their way out of a paper bag using simple Basic or Python subsets) first.

Maybe Swift can be simplified, de-complexified and made safe enough. TBD.
 
I think you read that wrong or I articulated that wrong. Im saying learn Swift FIRST because its such a basic and "Interactive" language THEN expand into other programming languages.
Thats such BS! It is THE language for learning to program.

It seems your understanding of people is lacking. I'm pretty sure firewood understood exactly what you were trying to say, and was in turn saying that a person "shouldn't" start learning with Swift before they grasp the fundamentals of programming.

Standard schools start off with teaching languages like "Logic", to allow the student to learn the right mindset for programming, because of the fact that most people cannot grasp the thinking necessary for programming. Your inability to grasp that concept, reflects your self-centeredness (inability to think beyond yourself). And in self-centered fashion you in turn warped his reply to make it seem like he was actually advocating your stance, because you are blinded by your self / experience. -- However, your warped thinking is abnormal and ironically makes you more inclined to learn programming. You are able to grasp the manipulation of programming constructs, because you regularly manipulate what you see. For you, learning in Swift creates opportunity, a "playground" of sorts for you to run free in manipulating constructs as you see fit.

That does not work for most people.

The sheer number of possibilities is far too overwhelming. Most people need limits in order to grasp foundations to build upon. This is why standard schools start off teaching fundamentals in languages the students will never truly program in (so that they will not develop language bias). Control items like a semi-colons encourage the thinking necessary catching ones mistakes with seemingly "small" things, with expressive languages this becomes much more daunting / overwhelming for most people. Most people learn by being given less. So even firewood's concise replies are more effective for most people, but ineffective for one such as you. Most people learn more with smaller bits of information to digest. That is basic psychology, and an inability to accept that reality just reflects your mind state. Your specific psychology makes this process backwards, because you are backwards, so you see things as backwards.

That being said, this reply is probably moot. Color me a masochist.
 
No very unlike missing "." at the end of the sentence. Because if you miss a "." your whole essay won't be broken. And that was just an example of the many small annoyances of other programming languages, that swift overcomes.

what about weak and strong, synthesize. How about having to specify that a string is a string and you can't just do let myName = AceGreen. The list goes on

My point still remains for any beginner, Swift is highly recommend because of its low barrier of entry and with Xcode's storyboard, auto layout and size classes, you can develop an app in a few hours.

PS changed my let statement to be less rude. No need to call someone anything.

You can develop a lot of crap in a few hours.... Yep.
Just like now everyone's a pro film maker or photographer.

It's the focus on the tool instead of the ability
to use the tool, on context and background to do good work
that I really hate in general (and not just in this case, in all cases).

Many people say teens are great with tech because they can operate a smart phone
when they don't know more about science and basic tech than 25 years ago.

It's like hey, they'll magically learn to create the next big thing by kludging things together;
who cares about actual craftsmanship and actually understanding what's going on.

Making easier to have access to basic level of function is a decent start to raise awareness of computer science.
But, I just hope there will be some meat put around
those bones so we don't have the coding equivalent to the selfie.

I'd rather they teach design than coding. That's the skill that's sorely missing.
Eventually coding will be done by robots, or AI or whatever, but design is were we still can make a difference.
 
You can develop a lot of crap in a few hours....

Not a problem. Most professional artists scribbled a lot of cruft in crayon as a kid. But that's what got them started. And the ones who threw away the most stuff they made with crayons and pencils probably ended up being the better photoshop/illustrator artists in the end.
 
I'd rather they teach design than coding. That's the skill that's sorely missing.

A beautifully noble intention.

Programming is a thing of design as to code we need to be able to programmatically design. But teaching creation is like teaching intelligence, it's talent more than acquired skill. Design and coding fundamentals can be taught, as knowledge can be learned but intelligence cannot. Intelligence can be honed and enhanced, and thus become more skillful as talent is mastered, but talent is necessary. -- Willful creation is a thing of intelligence, hence prodigies tend to be more art inclined. Most of the people replying to this thread are programmers, thus are creative people (an inherent nature of abstract minds, so we all think / perceive a bit warped, lol), and therefore are above average intelligence. Although we can teach the fundamentals of programming, convey our knowledge, we cannot teach the necessary talent.

In a world where the average intelligence is raised, one where most are tech inclined or even programmers ... so too would the perception of being truly creative raise. Those that are truly creative would be next level. Thus the perception of design, would also adapt and be rare in comparison (perceptively the standard will always be "sorely lacking"). -- Ultimately, truly creative artificial intelligence eludes us because we cannot yet reproduce creative talent. However, when we are able to create an A.I. that can truly program (aka A.I. that can truly express), we will have simultaneously created an A.I. that can truly design. Until then, A.I. can only create predefined fractals. So for now, A.I. is dependent upon human intelligence and is supplementary at best. When A.I. can truly perceive and express, it will subsequently surpass human perception, understanding, and ability to design. So the world where A.I. can code but not design and humans can still make a difference in design, isn't really possible.
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.