Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
What do you mean by excessive Control? Xcode 6 is like any Xcode beta before.

Considering the rush of total coding noobs at the Swift sub forum at Apple - The control isn't hard enought. It's a fight with a buggy and incomplete compiler, but all this noobs get on my nerve…

the must be in the $99 club to use a minor control I am not liking. It is minor though.

NDA that states no screen shots, no extensive blog reviews of xcode or swift applied to at least ios development (but I think it leaks over to mac os development as well). This where I see the control freak issues. Quite a few beta langauges past or present, and ide's for them out there do/did not have this NDA level in place.

I'd be looking at Julia for current beta. Which is stirring up interest because its development has been open for quite a while now.

Basically what I see with Julia beta development is devs being as open as they can to get some buzz. And its working. It is a buzzword in science, technical, and data science realms.

Does it have issues since still in beta...yes. Is it doing enough good with what works to get some credibility....yes. With Julia there is no control by NDA. I get the full blow by blow of the good, the bad and the ugly in blogs with screensshots or data output results galore in blogs.

Julia devs are banking on mixed in with the bad blogs there are the blogs about how fast, even in beta, she handles some calculations. This gamble is paying off. She is getting quite the reputation for being fast even in beta.


We are not getting this with swift/xcode. Its the new thing in the fall....and all I get is say what some in the $99 club post here in vague terms (because of NDA). Just not, imo, the way to get us stoked about this.
 
the must be in the $99 club to use a minor control I am not liking. It is minor though.

NDA that states no screen shots, no extensive blog reviews of xcode or swift applied to at least ios development (but I think it leaks over to mac os development as well). This where I see the control freak issues. Quite a few beta langauges past or present, and ide's for them out there do/did not have this NDA level in place.

I'd be looking at Julia for current beta. Which is stirring up interest because its development has been open for quite a while now.

Basically what I see with Julia beta development is devs being as open as they can to get some buzz. And its working. It is a buzzword in science, technical, and data science realms.

Does it have issues since still in beta...yes. Is it doing enough good with what works to get some credibility....yes. With Julia there is no control by NDA. I get the full blow by blow of the good, the bad and the ugly in blogs with screensshots or data output results galore in blogs.

Julia devs are banking on mixed in with the bad blogs there are the blogs about how fast, even in beta, she handles some calculations. This gamble is paying off. She is getting quite the reputation for being fast even in beta.


We are not getting this with swift/xcode. Its the new thing in the fall....and all I get is say what some in the $99 club post here in vague terms (because of NDA). Just not, imo, the way to get us stoked about this.

This isn't at all an Apples to Apples comparison. You might think you're comparing beta programming languages against each other, but you're actually comparing the organizations making them.

The developers of Julia (I've never even heard of it before) need all the press as attention they can get. All news is good news for them, so that they can reach the critical mass necessary for the language to survive/thrive. Julia will largely have language enthusiasts using it - they won't have a flood of noobs who don't know what "beta" means.

Apple needs no such attention for Swift. Just by virtue of being something from Apple, it gets enough attention to already reach critical mass. Only good news is good news for them. Noobs flooding them and failing to understand what the word "beta" means will attempt to write condemning reviews on Swift, which could give Swift a reputation for bugs even if they're all fixed before release.
 
I'd be looking at Julia for current beta.

Very funny :). The Swift book is available to the general public, better written, and likely got far more downloads in its first 48 hours of publication than did Julia documentation over that past year of beta.

Neither needs too many noobs kicking the tires during early beta. Julia prevented this by being nearly unknown (Where is Julia on the TIOBE list? Compared to rumors that Swift is already ready to enter the list in the top-25.) Swift is limiting its exposure to "only" 5 million enrolled iOS and Mac developers.

As for pure performance, notice that the developer of Julia's back-end performance optimizer (LLVM) is also one of the designers of Swift. So I don't expect a massive discrepancy in performance on static data sets with less than a dozen cores when both languages become more mature.
 
Last edited:
Pharo is excellent choice for begineers

http://pharo.org/

1) Simple yet very powerful language

2) Simple yet powerful IDE

3) live coding.

Live coding is what Swift tries accomplish with Playground , but in Pharo its on steroids. Basically there is no interrupt to your workflow, you get direct results , your errors dont cause you to waste time and there is no need to restart your app just correct your error imediately and resume execution.

The language is super simple, its just messages to objects. The syntax can fit in a post card, the rest is just libraries.

The IDE is very powerful and integrates beautifully with the language. The community is very helpful with begineers.

Pharo also can use C libraries, obj C libraries and even inline assembly code if you want ultimate power. It plays also very well with javascript if you care about web dev. So its a language that you can use for beginner coding to super advanced code.
 
Code:
a= [1,2,3,4,5,6,7,8,9]
a.each { |n| print "Hello ",n,"\n" }

[--SNIP--]

*OK - and another 10 minutes to work out how to print 'Hello' and 'n' on the same line :)

For a sequential list (numbers, strings, and probably other stuff), you can use a Range. Ranges have all of the fun Enumerator functions. So, for the most part, you can treat it like you would an array.

You can also use "puts", which will output a new line automagically.

And you can use string interpolation to use variables in a string without having to concatenate.

And you probably know this already, but you don't have to assign the array (or range) to a variable at all.

All of that to say, an even more concise way of writing that would be:
Code:
(1..9).each { |n| puts "Hello #{n}" }

Note: String interpolation requires double quotes. Single quotes will not work.

Code:
name = 'Bob'
puts "Hello, #{name}"
outputs: Hello, Bob

but

Code:
name = 'Bob'
puts 'Hello, #{name}'
outputs: Hello, #{name}

Well, what if I want to use double quotes in my outputted text? Do I have to escape them? Well, you can. Or you can use %Q.

Code:
name = 'Bob'
puts %Q|Hello, "#{name}"|
outputs: Hello "Bob"

%Q uses a delimiter and quotes anything between. You can use whatever non-alphanumberic delimiter you want, just be sure that it isn't in the text or you'll end your quote early. You can also use pairs of special characters. Like a pair of parenthesis, or brackets, or curly braces.

%Q()
%Q[]
%Q{}

You can use a lower-case q too, but that's equivalent to single quotes (which won't interpolate).

While we're on the topic of fun % commands. %w followed by a delimiter will create an array of strings of whatever words you you type. It's basically the same as calling .split(' ') on a string.

Code:
%w[Hi my name is Bob]

will return the array
Code:
['Hi', 'my', 'name', 'is', 'Bob']

You can iterate over it just like it's an array (because it is)
Code:
%w[Hi my name is Bob].each { |w| puts w }

Hi
my
name
is
Bob

Also note that I prefer to use brackets with my %w, but the same delimiter rules apply as with %Q. For more on this topic, read this: http://simpleror.wordpress.com/2009/03/15/q-q-w-w-x-r-s/

If you want to learn more, http://www.codecademy.com has all sorts of free courses. And https://www.codeschool.com is a really nice paid site. Both of those links offer courses on multiple different languages, (not just Ruby).
 
...is another Smalltalk derivative.

Might be a good stepping-stone to eventually learning Objective C.

yes Pharo is very closely related to Smalltalk , as a matter of fact Pharo is the most modern elegant and very actively developed Smalltalk implementation.

Pharo syntax is much simpler to ObjC because it does not try to mix with C syntax at all like ObjC. Its actually a lot closer to python and ruby. I was introduced to Pharo as a Python coder and I love it.

In Pharo everything is a message

Code:
Transcript show: 'hello world' .

Trnascript is the object, show is the method, ' hello world' the string passed as argument and the period at the end is used to separate Pharo statements.

This very simple recipe is what you encounter 80% of the times when you code in Pharo. The rest are Blocks which are anonymous functions implemented as objects. self and super keywords used similarly as in other languages. | var | to define a local variable named var. Special syntax for quickly defining arrays and other collections though you can still use the message passing as well. And that is pretty much it. The rest is just libraries. No need for if conditions, for loops , while loops etc they are all implemented as messages to objects and are added to Pharo as libraries.

Like python and ruby , pharo works great on windows and linux. Because it has good support for ObjC you can use it to code for iOS.

Pharo is much more than a programming language its an OS coming with its own applications inside. The big diffirence is that its much easier to hack than the OS you use and a lot of fun without having to hit your head on to wall for complex designs etc.

I use Pharo to script Blender, the open source 3d application cause I work mainly with 3d graphics.

I made some Pharo video tutorials for begineers that can be found here
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.