-  [JOIN IRC!]


[Return] [Entire Thread] [Last 50 posts]
Posting mode: Reply
Name
Subject   (reply to 32)
Message
File
Password  (for post and file deletion)
¯\(°_O)/¯
  • Supported file types are: BMP, GIF, JPG, PNG
  • Maximum file size allowed is 10000 KB.
  • Images greater than 400x400 pixels will be thumbnailed.
  • Currently 317 unique user posts. View catalog

  • Blotter updated: 2015-09-02 Show/Hide Show All


File 132664504077.png - (39.38KB , 546x332 , Screenshot.png )
32 No. 32
hey /nerd/s,

What language are you in the process of learning or want to learn? I'm currently getting into scala, an imperative/functional hybrid that runs on the jvm. I mainly come from a java background, but the practice of using only immutable values is really pushing me. That plus the syntactic sugar makes it feel really awesome.
6 posts omitted. Last 50 shown. Expand all images
>> No. 76
I've spent alot of time with Go lately. It's really productive for a systems language, I could easily see it replacing python for my webstuff.
>> No. 78
Been into computers since the ripe old age of 3, but somehow never picked up a programming language. Now I'm 21, and finally starting to pick up C; I'm thinking I might learn C++ as well.

Any suggestions for other languages I should learn. Not really looking to do anything in particular, just wanna know a few languages that can come in handy.
>> No. 81
>>78
python or ruby are good for quick scripts that'll deal with small tasks
>> No. 85
Lisp

And LOVING it!
>> No. 120
phyton via the courses in computer science circles
>> No. 133
learning python3 for my first language, but I have a question from it- I continually get a syntax error when I am trying to open any drive, always due to the : which i enter. what am I doing wrong?
>> No. 134
>>133
Post a small snippet of code that exemplifies your problem.
>> No. 136
File 133246270685.png - (37.52KB , 676x340 , 001.png )
136
>>134
>> No. 137
am I still using python2 syntax?
>> No. 138
>>136
In command prompt:
C:\Python32\python.exe hello.py
>> No. 139
>>136
- Chances are the full path is "C:\Python32\practice\hello.py" and not "C:\Python32\practice> hello.py";
- If it's a string it should be between " or ';
- To load a script either from another script or from the interpreter you must type "import script_name_without_the_extension" (script_name must be in the PATH environment variable), just writing the full path doesn't cut it. To see the current value of PATH type "set PATH" in the command prompt (or, equivalently, "echo %PATH%"); you can change the directories where it looks for scripts to import by appending to sys.path (after doing import sys).
>> No. 140
At the moment, pseudocode. Essentially a made up language to teach the basics and concepts of programming. It's a prerequisite for the other classes at my university.

Goes like this:
Learn pseudocode > Learn C > Learn everything else

In the meantime, I'm using codeacadamy to teach myself javascript.
>> No. 149
>>139
I was running under the assumption that he/she had already cd'd to the directory containing the scripts, as it saves typing afterwards.

>>140
Javascript? Why?
If you know C, C++ is a logical progression.
>> No. 171
>>149
This is in no way true.
I've used C++ plenty, particularly in projects central to KDE.
But C is better for many reasons. One of them being you won't meet many retards in deeper C circles. Another being that C is a small enough language that you can hold it all in your head (including [g]libc) at once without wincing.

C++ had promise. It really did. But its got way too many ways to do things and is impossibly complicated at this point. So much so that everyone does everything in a different way. In fact there is nobody who completely understands C++ and its too large of a symantic system to ever pick a bestish, or even primary way of doing things. So everyone winds up evolving their own private dialect of it, and all of that winds up not being portable.

And here "portable" is a critical term for a very specific and scary reason: I don't mean portable between compilers or operating systems -- gcc + Qt4 is incredibly robust across platforms. I mean portable among other C++ developers. This is the worst possible form of incompatibility and its due to C++ being way, way too rich of a language.

D doesn't suffer from this, for the most part, and the community is just the right size to be evolving semi-standard tribal practices which prevent too much abusive code from being learned by newcomers, which is critical to evolving a sane in-language culture (the divide between the C and C++ communities is even more pronounced than between the Python and Ruby communities).

I know I'm probably wasting my time typing here on an image board, but I hope that fledgling hackers who don't yet have a few decades in development consider my objections to this critically before blowing them off because I'm speaking contrary to all the "Learn {X,Y,Z} in 10 EZ STEPS!" books that programming book sections are so clogged with these days.

Anyway... as for the OP's question: After a while you won't "learn languages" you'll just learn new paradigms which may or may not be written in some particular syntax -- the real language of a large project is the parts defined by the authors, not the "language" it is in (not saying some languages don't suck horribly, but most of the ones listed here are decent enough, accept Java and JavaScript). In other words, language decisions are environmental decisions more than they are semantic project decisions -- and some environments are better than others, but that doesn't always have much to do with syntax unless the syntax is ambiguous or overly intrusive.

Blah.
>> No. 173
>>171
No, I guess I'm a fledgling hacker, and I totally agree with what you're putting down. Well said.

>>32
I was messing around with Racket (Scheme) recently. Want to try out prolog or Haskell since I think you can do some stuff like logic programming in Haskell.
>> No. 174
>>173
Wow, meant erlang, not Haskell.
>> No. 175
>>174
Hi, I'm the loudmouth from the giant post earlier...

Erlang, Prolog and Haskell (and Eiffel, while we're on it) are all wonderful languages. You won't go wrong with any of them -- I personally believe the Haskell community to be the healthiest (defined as having the highest signal to noise ratio within the community MLs) at the moment, but as for language, they are all great.

I'm not sure what you mean by "logic programming". It seems like you mean AI? Anyway, that can be done in any language, but is easiest in Lispy languages (or extensive use of Python's lambda functionality, though that's a bit unnecessarily cumbersome unless you're doing other things Python is well suited for already) -- and for this purpose Haskell fits well, though I'm not sure why one would want to try something "Lispy" when there is already a large body of AI study already documented directly in Lisp itself (Scheme, Mac Lisp, etc). And I'm not saying that Haskell is Lispy in every respect, certainly not -- but its absolute dedication to functional programming permits you to think in similar ways in most cases, but honestly can be a touch inflexible specifically because of its strict adherence to the functional doctrine. And that's on purpose and is a deliberate design decision, not just a random effect the designer didn't think about first -- another sign of a great language -- you just have to decide if that fits the way you think or not, which is something you won't grow a natural awareness of for a while yet, but keep it in mind as you develop.

As for environment... We template directly within GNU Guile a lot because it is very similar Python, and is even easier to embed in existing applications (this is actually the primary purpose behind Guile development -- it just turns out its useful in general scripting as well). Guile2 is even more solid, but not very many distros pre-package it yet because it still breaks GNUCash and not much software really depends on it just yet (but its cake to build on your own, don't worry). Anyway, Guile is my recommendation for simplicity of environment -- and Scheme is still my recommendation for working your ideas out. And if you're going that far translating to Common Lisp is really easy and gives you access to great system and application libraries -- and that's why Guile + CL have been such a strong fix for us where I work that it hasn't really left much practical room/time to dive very deeply into alternative (but brilliant) environments/languages like Haskell and Erlang.

Anyway, just pick something and stick with it a bit. Then you can get past the language details (and with great languages like these they are really just details) and focus on your projects and learning structure.
>> No. 176
>>175
When I said "[Guile] is similar to Python" I meant the way the environment works, (as in /usr/bin/python is a bit similar to /usr/bin/guile) not that Python and Scheme are anything alike at all.
>> No. 207
>>176
It's >>149 here. Regarding >>171 - what would you say be the best target after having learned (most of) C?
>> No. 209
File 133768681817.jpg - (164.96KB , 1650x1086 , 1288275954353.jpg )
209
>>207
Its me, >>171 / >>175 again.
Next target after C? Well, first thing to understand at this point is that you'll never finish understanding C, because you'll never finished exploring what sort of states you can invent within a machine. So you'll never "finish" learning C, just go deeper down the rabbit hole -- once you finally realize there is a rabbit hole down which to go.

That's not true for every language, though. With something like Java and C++ you'll just find a point where you're wandering endlessly in a waking nightmare of incompatible libraries, forgetting old core concepts as fast as you learn new ones. That's a sign of bad design (and a shit community full of perpetual noobs and help vampires -- see the web development community).

So anyway... to the heart of the question...
After C you should look for something that stretches you similarly and has no limits of its own, in the same way C does. It has been noted by nearly all the greats that any language that doesn't fundamentally change the way you consider problems (and deeper, all the way to the human condition and the nature of conditions themselves) is not worth learning.

Compactness (meaning "being-able-to-hold-it-all-in-at-onceness") is critical to this so you can think about problem domains, not fiddle with the latest vanity language.

It is also very important that you not be able to write C in that language.
What I mean by that is, if you can "write C" easily in the next language you learn, you'll eventually find that you're just writing C in something else and not adapting to whatever that language's core paradigms are. The joke about the difference between a pre-1970's hacker and a post-1970's hacker is still true: the pre-1970's hacker can still write FORTRAN in any language.

So for this reason I'd rule out anything similar, meaning that Python, Bash, Algol (oldie...hehe), Ada, Java, Ruby, almost anything OOP (you'll find yourself writing C within either a mega class, hacking up singletons, or otherwise writing things that behave the way your functions used to, which isn't such a bad thing, but it defeats the purpose, will expose what is stupid about most OOP environments and leave you feeling cheated), etc.

So ultimately, I'd recommend Scheme. Not even Common Lisp. If you actually need to write production or compiled code later its really easy to hop into CL if you need libraries and things, but Scheme is totally minimal. You can learn it in about 20 minutes and you'll never finish understanding what you can model with it -- perfect environment to bend your mind.

But you said you want to "learn" a language and I said you can learn Scheme in about 20 minutes. So that might sound like a waste of 20 minutes if what you wanted to do is plow through volumes of library arcana and amaze the dweebs in some IRC room with how l33t you are. Those libraries will all be obsolete tomorrow, anyway. So which is the waste of time?

What the Scheme community does a lot of is examining and modeling problems nobody has really taken a crack at before. This is important if you want to learn things -- and I mean really learn things that are hard enough that you get sleepy from brainlock once you grok it.

If you understand what deep black magic is possible in C and the wizardry that is available through a nearly ruleless environment such as Scheme, jumping to any language will just be a matter of adjusting your eyes to the syntax and having a library reference handy. As you get better at problem solving and sort of outgrow any particular tie to language you'll start gravitating to languages based on the communities and resources that surround them as much or more than for any particular merit of the language itself. People get all wrapped around the axle about this or that language. That's just silly. I mean, there are languages that clearly got raped by the marketing machine (Java takes first place there, with Ada a close second), others that were designed specifically to breed mental incompatibilities (MS's versions of "Visual $LANG", and most of the original baggage that .NET came with, for example), and others that suffer from half-baked design (or intentionally "transitional" design that just sort of stuck and lingered forever, like C++) that wind up spawning unbelievably large, confusing, bloated syntax, feature sets and libraries magnitudes larger and more confusing than the syntax or features... but aside from some of the famous bad examples there are loads of great examples, and so long as you're not tying your boat forever to one of them (but don't shun them if they are the language of an existing project you like, of course!) you'll be just fine.

Wow. That's a lot of blather in a tiny text box.
>> No. 215
>>209
>>207 here. I think I love you.
>> No. 225
>>209

advice.txt
>> No. 226
ABC

Always Be C-ing
>> No. 228
I'm trying to teach myself Prolog. It's true what they say about not being sure that you actually did what you wanted to, if you're used to procedural programming. It almost feels like you haven't "accomplished" anything, since you just set up the rules and let the computer figure out how to make them work, but it's still a lot of fun.
>> No. 234
I'm learning C++ atm.. and I hate it. sadly I need it for my master's thesis. The most annoying thing about it is that it makes me feel so stupid. I don't know, but with Perl, everything was working, and now my compiler fucks me up all the time and..
Does anyone else think C++ is ugly?
>> No. 241
>>234
Have you read these?
>>171
>>175
>>209
I'm the guy who wrote them, and I just don't feel like writing them again.
Anyway,
tl;dr: Yes, C++ is ugly. You can't learn it, anyway, so stop trying -- its too big to use all of it or hold in your head.

If you must use it aim for learning a sub-set that will get you where you want to go, and stick with that.

If you are mandated to use OOP then learn how to create classes, private data, and access that data via instance methods on the class. There are about a million ways in C++ to do each one of these things. They are all stupid and smart, because they are all boil down to picking/making your dialect of C++. Just pick one of each, and don't deviate from it. It'll be your little dialect of C++, which may make you feel dumb for not grokking all of C++ if you're too new to have found your Zen yet, or make you feel like you're pwning the game if you have been around for a while. Regardless, sticking to a sane subset of C++ is exactly what entire communities in C++dom do, all the while pretending they are *really* using C++ in all its glory. (Even Bjarn Stroustrup doesn't think that anyone can understand all of C++ or hold it all in their head at once. I misplaced the quote but he's on record saying this more than once.)

Now aside from the bare basics of OOP used only where you must, write your system as a C program that does what you want. This will come naturally if you have a Perl background but will execute a lot faster than you're used to. When you create an object, treat it the way you're used to thinking of it: a struct. But that struct can take instructions instead of being operated on by an external function only. This is kind of cool, but gets really wacky if you start trying to make objects behave just like real things because, simply, they are not.

That they are not real things and can't be trated 100% as simulated real things becomes painfully obvious very quickly if you have to deal with data design that is non-trivial. Real data experiences object overlap in a ton of places all around the seams, and the more non-trivial your data model is, the more normalized your data storage will have to be, and the more glaringly obvious it will become that the object model isn't working out.

Anyway, I digress. You didn't say a thing about what sort of project you're doing for school, so I can't really say more without peculating wildly. Just keep your C++ simple and limited to things that make sense as objects. If your teacher ever used Java or Ruby then he'll think EVERYTHING must be an object, and that's just stupid. Your main program loop (if you have one) should be, uh, a loop... not an object. Processes, especially ones that define the environment should be, uh, processes. Functions that do something independent of any tied-in data should be... oh yeah, functions! So don't let the OOP religion seep into you or you're going to be wasting a lot more effort than you're already in for, especially in a language like C++.

Good luck with your project.
>> No. 246
File 134055684758.jpg - (165.78KB , 325x379 , 1280882725611.jpg )
246
>>241
Its like all that stuff in this thread.
And more generally, this: http://zxq9.com/archives/535
>> No. 248
I'm not sure what I should learn next. I've been programming C nonstop for almost a year, did Perl for a couple months, and sometimes dick around in Awk, so I pretty much only have real exposure to imperative languages.

I read the first two chapters of SICP and Scheme seems like an awesome language, if only as an introductory to Common Lisp, because symbolic computation, machine translation and AI are things I'd like to do, but I also want to learn Prolog for the same reasons and I don't know the strengths or weaknesses of either.

But I certainly wouldn't mind specializing in systems programming either, and learning C++ or C# I think would be easier for me and there's more demand for either of them than for Prolog or any of those functional langauges. I'd rather have a low-paying job than starve while I learn some other languages.

And then there's Go, which is as they say "a better C, from the guys who didn't bring you C++." I've dabbled a bit in Go and C++ and Go seems more useful to me.

So I'm kind of intimidated by all these other languages and don't know which to approach.
>> No. 272
>>248
Since you read the first two chapters, I strongly recommend that you read the rest of them. Seriously.

Then you'll be halfway to never worrying much about languages again. You'll have your preferences, sure (and the often won't be the "ones in demand" which is a phrase you'll learn to become wary of), but you'll be able to deal with anything. That said, shitty bosses, shitty work environments and shitty situations in general can put a damper on your zen machine and make language choices suddenly seem as trivial as they usually are.

That said, I think Go and even C# are probably going to be short-timers -- as in not last too long compared to things like awk, C, shell, lisp, etc. There will be new things based on C that may supplant the others, but C itself is unlikely to go away. The core of lisp is sort of the same.

Anyway, the winds are slowly changing. I wouldn't be surprised if data modeling languages (actual SQL again) and functional programming come back into vogue once we awake from the OOP-Everything-Always coma we're in now. If that happens look to things like Haskell or Clojure to probably become the hot thing if someone every gets behind them with money (or if a social trend coalesces behind one).
>> No. 273
>>248
>>272
From the same blog cited above, there is a post about data trumping application logic. Most of it is anecdotal and doesn't exactly match the title (well sort of does, but its not just about the "object/relational impedence mismatch") but its relevant to a lot of the discussion in this thread in the way that it makes small the issues we're pretending are big here by contrasting them with the enormously important issues of data design:
http://zxq9.com/archives/567
>> No. 276
I'm learning C++ at the moment.

#include <iostream>

using namespace std;

int main()
{
int bacon = 0;
while (bacon < 20){
cout << "The bacon is " << bacon << " days old" << endl;
system("PAUSE");
cout << endl;
bacon = bacon + 1;
if (bacon == 20){
cout << endl;
cout << "The bacon has gone bad";
cout << endl;
system("PAUSE");
}

}

}


why did i post this
>> No. 328
>>276

I suppose you strive for somebody to congratulate you on your wit and mastering entry-level syntax, but I can be wrong.

About OP's question - I don't learn anything particular right now, I'm doing project in Matlab from vision systems that involves using handles, so that's the new thing that I learn as I strive to make this project come true. I also became more familiar with LateX, I began formatting text with it in TeXworks, idk if it's for some purpose, maybe it would be better just to make description of this project in Word.

In June and July I read a bunch of things about .NET, even downloaded MVS Ultimate and compiled some simple examples, but that's it, I didn't have enough time to get into it, hope in the future I'll make something nice with it, learn more about injecting SQL code, databases and this whole LINQ that seems to be hot thing about C#.

Hmm...oh, and there was also episode of making examples from CodeAcademy, it was mostly boredom and trying to go back to writing anything that needs execution.
>> No. 345
Brainfuck. It's just about the best programming language I've ever seen, but extremely difficult.
>> No. 360
>>345
I hate people who claim to be learning Brainfuck, or claim that it's a decent language, or so on.
Congratulations, welcome to entry-level esoteric languages.
You don't look impressive.
>> No. 368
>>360
Besides, Piet is so much cooler.

SAGE has been used.
>> No. 376
Trying to learn how to properly program in C, and do serious projects on it, I came from a background of Java and C++ and it's hard as balls, but I'm learning so much about pretty much everything, it's awesome!
>> No. 435
Working on my own language still (slow going; not much time outside of work). It's a purely functional language, identical to Haskell in many ways, but with Ruby+Smalltalk syntax and objects all the way down. Statically interfaced (basically static duck typing), but inferred as much as possible. The main method produces an IO object, which implements monoid, monad, etc.

It's the most hipster of languages.
>> No. 436
>>435
call it hipstr
>> No. 437
>>436
Or hip* (hipStar) to make it harder to find on Google.
>> No. 441
A short while ago I decided to try my hand at android. I was like "I took a java class and I can do this." And that feeling gradually gave way to "I can do 20% of this."

So evaluate my plan:

1. Rails site for the mysql database.
2. MainActivity sends JSON request to acquire data. How do I set up the server to verify the request and match the appropriate output in a secure manner? When it gets back to android I'll just throw it into an array or something.
3. User now has something to look at and can sidescroll and other silly things.
4. Android market.
>> No. 444
>>441
If you use Google AppEngine you can get all that stuff to auto-magically work out, but it's not easy to understand. I could barely get it to work as part of a class with written directions, so good luck.
>> No. 484
I've been learning Julia (julialang.org) lately. It's pretty cool, and still in development so I might be able to throw something at the project on github and feel productive.

It's basically Matlab/R but redesigned for people who want to write code instead of hack until something works. It's got real macros, multimethods, fast JIT, and easy parallel programming.

This code runs do_thing for each value of i on all available processes, then reduces the result with (+).

@parallel (+) for i=1:1000
do_thing(i)
end
>> No. 486
scala looks like fun
>> No. 504
>>486
Scala is the non-retarded brother of Java; Java as it should have been.

Clojure is the bastard step-brother of these two, the product of an illegitimate match between the stubby-fingered JVM and the vastly superior Lady Lisp.

That said, Scala is probably the most practical place to settle on if you absolutely *must* target the JVM (Android is the only legitimate case for this, imo).
>> No. 506
C because I've been told that it will make me a better programmer. I think comments like that are just purists dick waggling but eh. It's not really more difficult than regular coding imo, it's just that I'm coding without an ide (which I've done before with other languages) which makes me have to remember things. I don't know that that makes me a better programmer though. I don't know, anyone think that the whole "learn C to become a better programmer" stuff is bullshit, or do you think there's something to it? I mean Java and C++ and a lot of other languages are based on it so it'd be fine if I started with it, but now that I know all of those derivative languages I don't really see the point.

Also fuck F#, and fuck my teacher for assigning it to my group when other people got things like Haskell. Also fuck my group for not learning it, and making me do all of the everything. I don't think anyone uses F# and with good reason. It's a garbage language. Avoid it if you can. I mean it's a functional language that (according to its makers) is at best as fast as C#. Why bother coding in a functional language if not for speed or for low overhead (again not something this language has)?
>> No. 507
OH man, get rid of Java, switch to something more mainstream.
>> No. 508
>>61
It doesn't 'learn', but fuck it.

#!/bin/bash
NEW=$RANDOM
cat $0 > $NEW; chmod +x ./$NEW; ./$NEW
>> No. 543
I'm learning Racket and Python right now.

As of the moment, I'm just doing Python online course because I think Python is the most practical. I find it to be so-so enjoyable. The syntax is simple, somewhat clean, but I don't like how it uses whitespace.

Racket: Seems like a really fun language where I can learn so much from it. I'm doing an online course and coursera and reading Picturing Programs. http://picturingprograms.com/

The Racket stuff is on the backburner since the Python course is going to end soon.


I have a question. I want to do web related work, ie websites, server related etc....

So far I've learned HTML5/CSS3, Javascript (going to learn Jquery) and going to learn some PHP as well.

So, what other languages should I learn for web related programming? I was thinking C# .....
>> No. 544
>>543
PHP is awful. Either use Ruby on Rails or Python with Django. C# or Java would probably work too, I guess, but you'll probably have an easier time with a scriptier language.

Also, learn some SQL and read about database design. Even if you don't use SQL directly, understanding databases is crucial to any sort of complex website.
>> No. 577
anal warts
[Return] [Entire Thread] [Last 50 posts]


Delete post []
Password  
Report post
Reason