Pages: 1 [2]
|
 |
|
Author
|
Topic: Scripting, where do I start? (Read 6752 times)
|
Quinton
Terracotta Army
Posts: 3332
is saving up his raid points for a fancy board title
|
"GOTO considered harmful" and all.
I still think Python is a bit overly complex and fiddly (so many basic data types, many quite similar, etc etc) for an intro language, but I'm not a big believer in the mathematical purity of LISP either.
Useful environment is a big factor as people have pointed out -- when I got started you turned on the computer and got a READY prompt and that was it. Writing a little program to do some calculations or play a simple game or something was pretty neat. People have much, much higher expectations of what computers do today. ^^
|
|
|
|
Salamok
Terracotta Army
Posts: 2803
|
Why does learning with BASIC make us eternally broken coders?
http://www.cs.virginia.edu/~cs655/readings/ewd498.htmledit - Dijkstra and like minded folks seem to think the only way to properly develop the mindset for programming was to heavily focus on building a deep understanding of mathematics and then only after an appropriate level of understanding was achieved should you introduce programming as applied mathematics. IIRC this is the approach taken by MIT with their CS program. I suppose if you are developing operating systems, compilers, database engines and such, having learned via these methods is probably highly desirable. Personally the vast majority of code I see and deal with (probably because I was not trained in the above manner) has to do with business rules and end users, down in this cesspit no one cares that your salesman took the shortest route to make all his calls all we care about is the fact that the sob can sell. edit2 - If I make him sound like an elitist prick, you shouldn't take it that way as the man was a true gem. I wish I had moved to Austin a few years earlier and had the opportunity to just sit in the back row failing one of his classes.
|
|
« Last Edit: December 21, 2012, 08:50:13 AM by Salamok »
|
|
|
|
|
Hawkbit
Terracotta Army
Posts: 5531
Like a Klansman in the ghetto.
|
Coming at this from a different angle, I went back to school for a general Web Development 4yr at a local non-profit university that switched to partial online classes. My intent was to use the degree as a springboard into development for not necessarily Web D, but maybe general development. Our very first programming class was Python for basics. Then they pushed us into JavaScript for the transition from beginner to intermediate programming. I find myself struggling with how dynamic both languages are, and I find myself wanting experience with a more strict language. I find JavaScript simply too wonky, as illustrated here: https://www.destroyallsoftware.com/talks/wat However, JavaScript is required for pretty much anything I do in school, so I need to work with it. So now I'm considering going to a stricter, more static language and I'm not sure where to start. I'm kinda leaning on sticking with Python because I already have the basics down. Any thoughts?
|
|
|
|
Quinton
Terracotta Army
Posts: 3332
is saving up his raid points for a fancy board title
|
I'd suggest either Java or C# (depending on which is a better fit for the ecosystem you're in) as great modern languages with static type systems, garbage collection, extensive standard libraries, and wide usage. They both have C/C++ derived syntax which shouldn't be too foreign-looking for someone coming from javscript.
|
|
|
|
Salamok
Terracotta Army
Posts: 2803
|
C# or Java if you want to stay with something mainstream. Java is more widely used but no one just does Java so you have to decide on one of the many frameworks, C# already comes with a framework so there isn't much fragmentation there. I don't know anything about it but maybe Objective C might be good?
edit - Quinton beat me to it.
|
|
|
|
Quinton
Terracotta Army
Posts: 3332
is saving up his raid points for a fancy board title
|
Unless you're targeting Apple platforms, Objective C sees very little use. As it's more about bolting a dynamic, Smalltalk-like messaging system on to C, it might not be the ideal candidate for somebody looking for something with more static typing and compile-time checking.
|
|
|
|
naum
Terracotta Army
Posts: 4263
|
If web development is the goal, dynamic languages reign -- Java sucks for that realm, though people do use it, as well as Go (static typed language by Google) now is being used for web development, though primarily on the backend.
Regardless of your scripting language selection (and again, it would be from the palette of PHP, Ruby, Python, and now NodeJS which is just a flavor of Javascript that runs V8 Javascript engine on the server side). Javascript is ubiquitous and is what is universally used on client side (though there is now a proliferation of "compile to Javascript" options like CoffeeScript, Dart, etc. that have superseded GWT). Javascript is flawed but most of the ugliness that critics bemoan it for is not Javascript but the DOM and browser inconsistencies / quirks. In many respects, Javascript is a powerful, preferable language, and functional (functions are first class objects, giving it much of its power, as evidenced by all the toolkits and frameworks like jQuery, Sencha, Backbone.js, underscore.js, etc.… that have cropped up). A good resource, but at intermediate level is Douglas Crockford's "Javascript: The Good Parts", which showcases the prototypal benefits of the language and how to elude the junky bits of the language.
Sure, there are the hippies building web apps and kits with Smalltalk, Erlang, LISP, Scheme, Haskell, etc.…
|
"Should the batman kill Joker because it would save more lives?" is a fundamentally different question from "should the batman have a bunch of machineguns that go BATBATBATBATBAT because its totally cool?". ~Goumindong
|
|
|
Salamok
Terracotta Army
Posts: 2803
|
php is a horrible language to learn as a first language, even with frameworks and oop support. If web is the goal RoR might be the best simply because you avoid having to deal with the somewhat fragmented and confusing tool chain that is required to bring Python to the web.
edit - I still think the added benefits Python brings to the table on the systems/utility program side of things make it worth the extra deployment efforts as a web language. Even if you think you are only web focused that rabbit hole eventually leads back to the OS and if you are on a lamp stack then a knowledge of Python will serve you better than Ruby.
|
|
« Last Edit: December 21, 2012, 11:03:24 AM by Salamok »
|
|
|
|
|
naum
Terracotta Army
Posts: 4263
|
php is a horrible language to learn as a first language, even with frameworks and oop support. If web is the goal RoR might be the best simply because you avoid having to deal with the somewhat fragmented and confusing tool chain that is required to bring Python to the web.
Well, was not casting judgment between the various web scripting alternatives -- besides, every language (and platforms) has its warts, Ruby on Rails (RoR) included. And PHP certainly has its downside (though its critics often border on hysterical in attacking) but it was/is predominant web choice -- a good majority of all popular web apps have been built with the LAMP model -- WordPress, Wikipedia, Tumblr, Moodle, etc.… Due in large part because where Apache runs, PHP also is on. Cheap hosting cultivated a flowering of PHP. RoR, Python, etc.… meant you need to roll up your own server at a more significant cost, though that has changed >2010 with the cloud, AWS/EC2, Google App Engine, Heroku, etc.…
|
"Should the batman kill Joker because it would save more lives?" is a fundamentally different question from "should the batman have a bunch of machineguns that go BATBATBATBATBAT because its totally cool?". ~Goumindong
|
|
|
Lantyssa
Terracotta Army
Posts: 20848
|
Another scripting language to consider might be AutoIt. It's pretty simple, but lets you get into automating things you may be familiar with. A simple project would be making it post "Hello World" to this thread.  http://www.cs.virginia.edu/~cs655/readings/ewd498.htmledit - Dijkstra and like minded folks seem to think the only way to properly develop the mindset for programming was to heavily focus on building a deep understanding of mathematics and then only after an appropriate level of understanding was achieved should you introduce programming as applied mathematics. IIRC this is the approach taken by MIT with their CS program. I suppose if you are developing operating systems, compilers, database engines and such, having learned via these methods is probably highly desirable. Personally the vast majority of code I see and deal with (probably because I was not trained in the above manner) has to do with business rules and end users, down in this cesspit no one cares that your salesman took the shortest route to make all his calls all we care about is the fact that the sob can sell. I don't necessarily disagree with all his points, but I'd still like to see the reasoning behind some of them. I learned to program when I was nine or ten. I had a good grasp of mathematics for my age, but of course I wasn't doing advanced stuff. And I learned by treating it like a free-form puzzle and seeing what I could come up with. BASIC was just fine at that age. I'm not going to ever be a cutting-edge kernal programmer, but on the other hand I'm not a terrible one either. And I know more languages than the full-time programmers I know on top of being able to integrate them with everyday workflow much better. (Seriously. I'm having to teach my programmer how to read the friggin' DOS path that his code calls. D:\blah\yada.exe is not hard to grasp.) So I think it entirely depends what you need the programmer to do.
|
Hahahaha! I'm really good at this!
|
|
|
Ghambit
Terracotta Army
Posts: 5576
|
As much as I recommend learning C# above all else, you really should dip into direct level design and scripting within a working engine/environment. We can all spout elitist programming shit all we want, but a good scripter/designer a programmer does not necessarily make. And tbh, these days the guys making all the money and getting all the recognition are NOT your codemonkey types. They're the total conversion types who let some other asshat do all the gruntwork. e.g. why reinvent a tool when you can just use it and move on? Knowing this, your choices aren't as widespread as you think. Browse around the employment ads and see which skills they're needing. Find the commonalities and stick with those. They want Unity? Learn Unity and C#. They want Unreal? Learn it, Kismet, and C# again. Cryengine? (kismet-type GUI, but learn it), it'll be Lua. HeroEngine? custom scripting based on C++ kinda. All this fancy Perl, actionscript, whatever talk means jack if you can't bring the fun nor get hired. Oh Actionscript? LoL. Everyone's moving away from that and into HTML5, which is another ball of wax altogether. That's largely webdev, but there are a lot of small apps/games that use it now. A different animal and not one I'd recommend playing with w/o again, starting with a nice gaming-engine with GUI. There are a few out there I've recommended in the gamedev thread (scirra construct, etc.). All of this comes under the pre-text of managed code. Being thrust directly into nothing but a command-prompt isnt a great way to learn imo. Use an environment that catches your mistakes and shows them to you. Something like VisualStudio pumping custom scripts into Kismet/UE3 is a powerful thing and one that you can see results from fairly quickly. Also, you'll have plenty of templates to work with. Stealing is smart. 
|
"See, the beauty of webgames is that I can play them on my phone while I'm plowing your mom." -Samwise
|
|
|
Soln
Terracotta Army
Posts: 4737
the opportunity for evil is just delicious
|
I had a long'ish post that really added nothing that I lost so I'll just add my two cents quickly. Look at Sikuli. It's still challenging to fully automate the front-end QA of web games, and getting experience with Selenium and AutoIt is wise, but Sikuli is easier. It allows you to macro all your basic inputs and it lets you screenshot everything, so combining that with backend automation makes it very useful for testing. Also, the games world is moving faster to mobile, but Flash/ActionScript still has a huge base. I don't want to argue it or quote NPD data. Instead, I would recommend to anyone to look at Starling and Dart (we're using it) and to also look at exploring Unity. Unity is getting a larger base and it's free for home brew and perfect to learn on.
|
|
« Last Edit: December 22, 2012, 09:10:11 AM by Soln »
|
|
|
|
|
Ghambit
Terracotta Army
Posts: 5576
|
Thanks for that Sikuli post. I'd forgotten about that. Million things I could use that for.
|
"See, the beauty of webgames is that I can play them on my phone while I'm plowing your mom." -Samwise
|
|
|
|
Pages: 1 [2]
|
|
|
 |