Log in

View Full Version : Any programmers here?


vittyvirus
November 16th, 2014, 11:34 PM
Any programmer geeks here?

Karkat
November 16th, 2014, 11:36 PM
Eh, I'm starting to learn code

vittyvirus
November 17th, 2014, 12:31 AM
What are learning now? And which language?

Karkat
November 17th, 2014, 12:41 AM
What are learning now? And which language?

Mostly JavaScript, and I'm still on basics, but I understand the essentials pretty well, I think.

Typhlosion
November 17th, 2014, 12:49 AM
Yeah, C# (my favorite! :heart:), C, Java, SQL, Prolog and some experiences with PHP/JS/CPP/Fortran/Bash. Also HTML/CSS even though they really aren't programming.

I also wrote a programming language, Chiton, which was fun.

vittyvirus
November 17th, 2014, 12:57 AM
Mostly JavaScript, and I'm still on basics, but I understand the essentials pretty well, I think.

Well, I think you're using Khan Academy. Only that pays specia attention to JS.

Karkat
November 17th, 2014, 12:59 AM
Well, I think you're using Khan Academy. Only that pays specia attention to JS.

Codeacademy, actually. And I've used Scratch before, which uses a basic language that imitates and dumbs-down JS

vittyvirus
November 17th, 2014, 01:01 AM
Yeah, C# (my favorite! :heart:), C, Java, SQL, Prolog and some experiences with PHP/JS/CPP/Fortran/Bash. Also HTML/CSS even though they really aren't programming.

I also wrote a programming language, Chiton, which was fun.

C# your fav? Despite its name, its more Java than C. I'd share my favs: I love C++, assembly (yes!), ofc C, and PHP/SQL for web. I've also written a 2D compiler. I am working on my chess engine Yaka (awkward name, eh?) and Tantray π. Foxy Factorial 1.0 is already out.

Codeacademy, actually. And I've used Scratch before, which uses a basic language that imitates and dumbs-down JS

You've a lot to learn. Just keep going!

Happy Programming!

Please don't double post, use the 'multiquote' button instead. ~Typhlosion

Karkat
November 17th, 2014, 01:03 AM
You've a lot to learn. Just keep going!

Happy Programming!

Hah yeah

Thanks :)

Typhlosion
November 17th, 2014, 01:09 AM
C# your fav? Despite its name, its more Java than C. I'd share my favs: I love C++, assembly (yes!), ofc C, and PHP/SQL for web. I've also written a 2D compiler. I am working on my chess engine Yaka (awkward name, eh?) and Tantray π. Foxy Factorial 1.0 is already out.

That was the first thing that I thought when I first saw C# :lol: It's actually the successor of J++ which was already heavily based on Java. But it's soo much better than its father!

Also, damn, you got balls. Assembly wouldn't be a language I'd be too keen on working with :P

vittyvirus
November 17th, 2014, 01:46 AM
I don't know why people feel assembly horrible. Actually, it's very simple, and doesn't require a genius to work with. Simple: mov copies second arg to first (somewhat similar as int f = 0;), cmp compares the args, and jxx jumps. This means jxx can be used as 'if' as well as a loop. e.g.
if (a > 0)
...some statements...

cmp <mem address of a> , 0 ; if (a > 0)
jae do_it_if_a_is_greater_than_zero ; ...some statements...

Simple, and much more efficient.

Many projects (like Tantray π) are require max efficiency, which is mostly achieved through hardware instructions and inline assembly. Assembly looks ugly, but it isn't.

Hypers
November 18th, 2014, 06:14 AM
I do java and VB. VB is so limited tho.

CosmicNoodle
November 18th, 2014, 05:01 PM
C#, java, HTML and N++.

Captain Canada
November 18th, 2014, 07:20 PM
Tried to learn Java before... Stopped after five minutes of realizing it was too hard

Uranus
November 18th, 2014, 08:36 PM
I've never learned how but I'd be interested

vittyvirus
November 23rd, 2014, 01:17 AM
Java and difficult?

Go home you need a break...

@YungMerkMMR Learning a programming language is quite simple,as long as you start with a simple language and not assembly or Lisp.

There are a lot of tutorials on internet, or if you're nerdic like me you can even buy books. I'd recommend starting with a very simple language like VB or JavaScript. There are a lot of cool JavaScript tutorials on Khan Academy. Then, move on to C and/or C++.

Damon16b
November 24th, 2014, 05:31 PM
Yah :) C# (the best), Java, Python, Bash, HTML & CSS

LunaTech
November 28th, 2014, 02:56 PM
Learned some C this semester

Elliott_hn
November 28th, 2014, 03:26 PM
im pretty good at python

TheMatrix
December 3rd, 2014, 03:18 AM
Perl is my favourite for almost everything, followed by C# (Microsoft screwed everything else up but they got C#, ASP.net and VS right).

As for learning, once you've done one language for a while, others start to come naturally.

I've been doing assembler(x86 and PIC16F) for a month or two, which is actually pretty easy. Nobody who knows what they're doing writes everything manually, they use a macro assembler, which is the best thing since sliced bread.
And if you do program in assembler, you must buy the reference(s) for your processor. Actually, that applies to any programming language (but then for your language of choice).

I don't know why people feel assembly horrible. Actually, it's very simple, and doesn't require a genius to work with. Simple: mov copies second arg to first (somewhat similar as int f = 0;), cmp compares the args, and jxx jumps. This means jxx can be used as 'if' as well as a loop. e.g.
if (a > 0)
...some statements...

cmp <mem address of a> , 0 ; if (a > 0)
jae do_it_if_a_is_greater_than_zero ; ...some statements...

Simple, and much more efficient.

Many projects (like Tantray π) are require max efficiency, which is mostly achieved through hardware instructions and inline assembly. Assembly looks ugly, but it isn't.
I guarantee you that your compiler knows how to optimise better than any human can practically do, especially with regards to math, variable placement, and when to inline or call a function.

You do need to be somewhat of a genius, though: there's a lot to memorise and even more to understand before you can do it.

TheBigUnit
December 3rd, 2014, 07:55 PM
Yeah, C# (my favorite! :heart:), C, Java, SQL, Prolog and some experiences with PHP/JS/CPP/Fortran/Bash. Also HTML/CSS even though they really aren't programming.

I also wrote a programming language, Chiton, which was fun.

how do i start coding for a noob like me?

vittyvirus
December 18th, 2014, 12:54 PM
Perl is my favourite for almost everything, followed by C# (Microsoft screwed everything else up but they got C#, ASP.net and VS right).

As for learning, once you've done one language for a while, others start to come naturally.

I've been doing assembler(x86 and PIC16F) for a month or two, which is actually pretty easy. Nobody who knows what they're doing writes everything manually, they use a macro assembler, which is the best thing since sliced bread.
And if you do program in assembler, you must buy the reference(s) for your processor. Actually, that applies to any programming language (but then for your language of choice).


I guarantee you that your compiler knows how to optimise better than any human can practically do, especially with regards to math, variable placement, and when to inline or call a function.

You do need to be somewhat of a genius, though: there's a lot to memorise and even more to understand before you can do it.

This certainly isn't true. An old joke: "There are 3 reasons to use Assembly: Speed, speed, and speed!"

Although optimizing compilers optimize very well, but the generated code is really very sub-optimal. They just apply known patterns over and over again.

And almost all efficiency-intensive projects use inline assembly. Almoat all 'big' and 'serious' numberical projects use hardware instructions. Why? Because the compiler can't understand the code, it just translates the code into assembly.

Optimizing compilers aren't magical. And a intermediate assembly language programmer can certainly beat a optimizing comiler at small projects.

That said, optimizing compilers would never kill, at least, inline assembly.

vittyvirus
December 18th, 2014, 12:56 PM
how do i start coding for a noob like me?

There are a lot of tutorials on internet. Like Khan Academy.

And if you're really serious, by a book. Start out with a simple programming language like VB or Python.

Silicate Wielder
December 28th, 2014, 01:17 AM
BASH and it's little brother Python!

Kivy is a pain to work with if it decides to be temper mental >_<

BowlofWhales
December 28th, 2014, 09:02 PM
Do you guys have any suggestions for websites/ books/ etc to learn programming from? I know much of the basics so I would prefer to learn something useful like C and its iterations. Also I have no money but my parents would buy me books. Thankss :D

IWTBF115
December 28th, 2014, 10:02 PM
I'm not anywhere near fluent in any programming language, but I do know a bit of C++, and I want to learn Python.

Silicate Wielder
December 29th, 2014, 07:57 PM
Do you guys have any suggestions for websites/ books/ etc to learn programming from? I know much of the basics so I would prefer to learn something useful like C and its iterations. Also I have no money but my parents would buy me books. Thankss :D

I just know of Coding ground if you need a terminal/ simple online editor for code, but I believe you can find tutorials for different languages there:
http://www.tutorialspoint.com/codingground.htm

vittyvirus
December 30th, 2014, 02:17 PM
I'm not anywhere near fluent in any programming language, but I do know a bit of C++, and I want to learn Python.

python.org itself holds a good documentation. If you're not that serious, you can buy 'Python for kids'. Or google up for Python tutorials or you can think..

Sir Enigma
January 3rd, 2015, 08:03 AM
I'll just contribute with this:
http://imgur.com/A41Dxvl

randomuser123
January 4th, 2015, 07:55 PM
My favourite language is Java, closely followed by C++ (with and without libraries like SDL). I also am comfortable with HTML/CSS (though it isn't programming), PHP, bits of ASP.NET, C#, Python, JavaScript, bash, assembly, VB/VBA/VB.NET as well as some application specific stuff like MEL scripting for Maya.

Yes, I enjoy programming a lot and find it very satisfying. I think once you learn one or two languages it is easy to quickly pick up more.

Any recommendations for another language to learn would be appreciated - particularly since I am interested in machine learning and game development (I want something challenging, not something simple - i.e. I want something that will take me moths to learn, not a few days)!

nobbs66
January 9th, 2015, 06:26 PM
New member, but I'm fine with C++, FreeBASIC, and some 6502 ASM. Lately I've been working with a friend on a NES emulator written in FreeBASIC, but it's slow. The 6502 core is about 8x slower than it should be even on my i5 4440. Sadly it looks like we're going to have to do a lot of rewriting as well as using inline ASM and switching to either SDL or OGL, instead of using the included graphics lib.

Godfrey
January 12th, 2015, 08:26 AM
I have been studying web development and server security since I was 8 (in February I will be 16, so appx. 8 years) primarily in PHP, I am most familiar with Linux (CentOS). I am now experimenting with nginx as my http server (pretty light-weight, and very easy to setup load balancing.)

Magus
January 12th, 2015, 09:07 AM
6502 ASM. Lately I've been working with a friend on a NES emulator written in FreeBASIC, but it's slow. The 6502 core is about 8x slower than it should be even on my i5 4440. Sadly it looks like we're going to have to do a lot of rewriting as well as using inline ASM and switching to either SDL or OGL, instead of using the included graphics lib.

How the hell you learned assembly? Shit took me two years and still don't know how to make a simple output program.

I have this Apple II emulator(to help emulate the 6502) and want to make programs on it XD.

nobbs66
January 12th, 2015, 06:16 PM
My friends are all programmers.

Here's simple SCHIP emulator that a friend and i wrote over the course of a few days. In the end I learned quite a bit about emulation in general.

https://github.com/Sarania/Project-Cherry

TheMatrix
January 14th, 2015, 01:09 AM
New member, but I'm fine with C++, FreeBASIC, and some 6502 ASM. Lately I've been working with a friend on a NES emulator written in FreeBASIC, but it's slow. The 6502 core is about 8x slower than it should be even on my i5 4440. Sadly it looks like we're going to have to do a lot of rewriting as well as using inline ASM and switching to either SDL or OGL, instead of using the included graphics lib.

I don't think the NES has an OpenGL implementation, and SDL probably doesn't fit in memory...

Also, the NES is many more times slower than your PC's processor :P

nobbs66
January 14th, 2015, 07:09 AM
Well, even though the NES is far slower than my PC, emulating it in FreeBASIC is slow. If my friend was familiar with C then we would have coded it in that. Currently there are improvements we could make to speed things up. We'll have to write a new renderer for example. That willl be what my friend ends up doing because I'm stuck with the job of sorting through documentation, fixing memory mirroring, and adding a PPU core. Currently on my i5 4440 the 6502 core on its own is running at about 250khz and it really should be running at 1.79mhz. Thankfully if I ever get stuck I can talk to some of the PCSX2 devs. One of them already found some amazing documentation.

As for the renderer, If I can't use SDL, then I'll switch to OGL. Either way it would be better than what we have now.

Melkor
January 14th, 2015, 09:04 AM
Well, I used to do a lot of coding 2 years ago in python, C++ and VB and I also worked on AVR for some time which is like programming a kit or stuff like that but I stopped when the depression kicked in. Probably I will start again sometime soon... :(

FairPlay137
January 14th, 2015, 06:38 PM
I'm learning Pascal, but I'm fluent in other programming languages, too. Like: TI-Basic (on the TI-83+), Scratch, C++ (vaguely remember it), and Java (I'm stuck without an IDE for it because Eclipse is acting up on me).

nobbs66
January 16th, 2015, 05:25 PM
Well, my friend and i are going to start from scratch except for the decoder. He'll be handling the Header reading, rendering, and some of the CPU and PPU. I'll be doing the majority of the work on the PPU and some of the CPU. There's always been an issue with one 6502 programs we have. It seems to be linked to the carry flag, but it's hard to track down where the issue is, since an addressing mode or opcode could affect it. We can also stream line everything as the code was a bit messy, since we were focusing purely on the 6502 at the time.

NilnocK
February 5th, 2015, 10:51 PM
Anyone program in Java?

CanadianJake
February 12th, 2015, 05:57 PM
I have tried learning coding/programming but I found it way to confusing. I've tried looking up guides on how to do it, but I just never really got around to reading the guides and my patience wasn't really there.

grnt
February 13th, 2015, 05:12 PM
I know Java,C++,C,HTML/CSS/JS/PHP.

Screw Attack
February 28th, 2015, 12:32 PM
I've been learning C++ in school for two years, don't really know if I am beginner or medium level to be honest. I only know the stuff they teach at my school. I also know some SQL and basic HTML (roll your eyes at me all you want but I can marquee ha)

I've also tried to learn python and CSS online unsuccessfully and I gave up and forgot them. Will try again in future I guess.

bskaoalncnfjd
March 1st, 2015, 10:42 AM
I tried to learn Ruby and javascript, but I didn't get far.

smff
March 7th, 2015, 04:29 AM
Java, Python, HTML, CSS, C/C++, JavaScript

Made a few games and pieces of software...

IconoclasticHeretic
March 8th, 2015, 03:24 PM
Fuck Java, Marry C++, Kill Assembly

Wink at Python from afar.

qaisr
March 9th, 2015, 04:08 AM
My friends are all programmers.

Here's simple SCHIP emulator that a friend and i wrote over the course of a few days.

This is very interesting, I'd like to learn more about emulation, it isnt an area where I am very well versed in. I do have some knowledge of nasm; is it possible for your emulator or any emulator to draw to framebuffer? Is this implemented at the hardware level, or is this achieved via extern functions in xvfb/vesa? I assume there isnt any need to implement shaders at this level.

Personally, I can only code in C/C++/F77/NASM, and I know my Python, Perl, Bash, however, I haven't found any reason to use nasm directly when not creating IRQs manually (which i sometimes do because I am learning the linux and contikki kernel API atm). It's perpostreous to say that one would rather use asm on any architecture for speed because if we are to flag the compiler properly (e.g. no memory aliasing, which, may cause unexpected behavior in dereferrencing in non-array languages like C) the code would run at the same speed. The only reason one would explicitly inline asm for speed, is to vectorize (allow one op over multiple data in one register) code using SIMD instructions, i.e. XMM0-7 registers and AVX YMM0-7 registers. Even if one has mastered creating conditionals and label jumps in asm, it is chock full of errors in large programs when you are continually using dereferenced data and pushing it onto the stack without actually initializing the data to begin with, I've seen many people having problems with this leap between OOP and non-class oriented programming languages. I agree with TheMatrix that any compiler, even llvm, will vectorize your code better than you can. Right now, the bottleneck in coding are proper JIT frontends for scripts that will run high level languages at native low level speeds, and pthread and OpenMP.

I mostly study algorithms (I'm writing a go game complete with basic AI), and write little things for my two arduino unos; right now, one automates a MOSFET and an air solenoid for a thermo-aware propane burner, which may become a soupcan forge or perhaps a propane torch.

vittyvirus
March 9th, 2015, 11:12 AM
This is very interesting, I'd like to learn more about emulation, it isnt an area where I am very well versed in. I do have some knowledge of nasm; is it possible for your emulator or any emulator to draw to framebuffer? Is this implemented at the hardware level, or is this achieved via extern functions in xvfb/vesa? I assume there isnt any need to implement shaders at this level.

Personally, I can only code in C/C++/F77/NASM, and I know my Python, Perl, Bash, however, I haven't found any reason to use nasm directly when not creating IRQs manually (which i sometimes do because I am learning the linux and contikki kernel API atm). It's perpostreous to say that one would rather use asm on any architecture for speed because if we are to flag the compiler properly (e.g. no memory aliasing, which, may cause unexpected behavior in dereferrencing in non-array languages like C) the code would run at the same speed. The only reason one would explicitly inline asm for speed, is to vectorize (allow one op over multiple data in one register) code using SIMD instructions, i.e. XMM0-7 registers and AVX YMM0-7 registers. Even if one has mastered creating conditionals and label jumps in asm, it is chock full of errors in large programs when you are continually using dereferenced data and pushing it onto the stack without actually initializing the data to begin with, I've seen many people having problems with this leap between OOP and non-class oriented programming languages. I agree with TheMatrix that any compiler, even llvm, will vectorize your code better than you can. Right now, the bottleneck in coding are proper JIT frontends for scripts that will run high level languages at native low level speeds, and pthread and OpenMP.

I mostly study algorithms (I'm writing a go game complete with basic AI), and write little things for my two arduino unos; right now, one automates a MOSFET and an air solenoid for a thermo-aware propane burner, which may become a soupcan forge or perhaps a propane torch.

An 'optimizing' compiler can optimize better than humans, but can't code as fast as humans. If you know compiler theory, then you might know that it just optimizes the common patterns it generates. It does NOT give you the full control over things like registers, except by use of inline assembly. It does NOT know what you are tryna' do. For optimal performance without compromising much on clean code, good OOP plus hardware intrinsics and inline assembly is the key.

qaisr
March 9th, 2015, 02:57 PM
An 'optimizing' compiler can optimize better than humans, but can't code as fast as humans.
This is a little confusing to me. Are you insiniuating that hand coding asm is the only way to achieve the maximum performance? This is possible, but extremely unnecessary. One would need to check the 'lea' of where the array ends constantly, so as to make sure the register is not loading OOB memory. This is only a simple case, if one were to vectorize certain string operations, there may actually be the need for cost-benefit calculation, which is very hard to do as a human.


If you know compiler theory, then you might know that it just optimizes the common patterns it generates.

Compilers like MSVC++ and ICC which have very in-depth hardware APIs and documentation, are able to vectorize 90% of loops. LLVM+clang is catching up fast and GCC is almost there. It's true that these patterns are what the compiler looks for (e.g., heurestics). It is much better programming practice to write cleaner code which will be better detected in compiler based optimization than manually inlining asm into C.

It does NOT give you the full control over things like registers, except by use of inline assembly. It does NOT know what you are tryna' do. For optimal performance without compromising much on clean code, good OOP plus hardware intrinsics and inline assembly is the key.

While that may be true, compilers have a very good knowledge of what registers you need to be allocating when performing operations. There are very few cases where I see that people need to clobber registers in their code. Perhaps, 5 or 10 years ago, inlining asm was necessary because there was visible overhead in compilers when C++ or other abstract languages constantly had speed issues where certain macros could cause unexpected behavior in aliased pointers. My point is that even though nasm has very good control in code, this is no longer necessary because of how amazing compilers have been developed. The majority of issues with performance in high-level languages has always been memory access practices, not registers, and this is has been greatly optimized in current implementations of C compilers.