• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

What's good for fast stuff developing

Status
Not open for further replies.

Deleted member 219079

D

Deleted member 219079

By fast stuff I mean I won't try to act god and make something like slender (it wasn't made by persons themselves all the complicated stuff was already in unity so the creators of slender were p**sies)

I mean like solitaire, calculator, calendar, notepad, sticky note, clock, always on top window that I can click through etc. simple stuff like that.

So I've eclipse with java and a bit of java experience. But is c++ faster for making fast stuff?
 
Level 25
Joined
May 11, 2007
Messages
4,650
C# and Java is easier to learn and create stuff for than C++.

And slender, what? They weren't allowed to use a game engine? Should we ban all game engines like Unreal, XNA, Unity because they give code to the users? Maybe you should code everything in assembly then :)
 

Deleted member 219079

D

Deleted member 219079

I mean I won't try to make something complicated as slender.

What I mean by the thing that they used unity is that I can't afford unity so I'd have to make it from scratch as I got no money :(
 
Level 21
Joined
Mar 27, 2012
Messages
3,232
The scale is: Fast making of programs vs making fast programs.

The faster you can write a useful program in a language, the less likely it is to run fast. This is because the fastest languages to write are those that don't give you much low level control, if any.

C++ is considered a very good compromise between high and low level programming.
 

Deleted member 219079

D

Deleted member 219079

Ain't C++ old as heck? But in java there's continuous updates...

You didn't say which is better for fastly making stuff. I'm not planning to make my living outta nerd stuff, I just wanna mess with pc languages and make experimental programs.
 
Level 22
Joined
Sep 24, 2005
Messages
4,821
Try VB.NET too. You're making simple click-type games right? If you're into browser tower defense games, try flash too.
 

Deleted member 219079

D

Deleted member 219079

Oh visual basic? I remember messing with it when I was like 12 :p I made fake BSOD program, pop up message generator and a lot of abandoned projects lol. I loved it.

But in VB you can never get that deep into programming, that's too bad :(
 
Level 22
Joined
Sep 24, 2005
Messages
4,821
Deep into programming? I thought you just wanted to make calculator apps and some other small scale projects...

Anyway, if you think that's not deep enough, go try FASM(Flat Assembler) or NASM(Netwide Assembler). Good luck with that.
 

Deleted member 219079

D

Deleted member 219079

Uhh :O I mean like, the depth which Java is or C++. Basically that depth which is favoured by majority of devs

I haven't heard of assembler language? Is it better than Java?
 
Level 22
Joined
Sep 24, 2005
Messages
4,821
I can't say it's better, but if you like "deep" programming, then you might like it. Anyway, stop looking for what's "better" and look for something that fits what you want to do.
 
Level 29
Joined
Jul 29, 2007
Messages
5,174
"Better", the worst question to ever exist in any subject.

Use a couple of languages, make small projects in all of them, and you'll know what you like more.
Once you know your way around multiple languages, you'll also be smarter and choose a language based on the project, instead of an arbitrary "what is the bestest language".

I strongly encourage you to at least try thoroughly one statically typed language (C, C++, Java, C#, ...), and one dynamically typed language (JavaScript, Lua, Ruby, Python, ...).

The faster you can write a useful program in a language, the less likely it is to run fast.

This is a misleading sentence.
"Fast" has no definition here.
The actual thing you should care about is "fast enough", which is application specific. In almost every case, ease of writing and clear code is better than writing "fast" code.
 
Level 21
Joined
Mar 27, 2012
Messages
3,232
C++ may be old as dirt, but it's still the best language around if you want to build something from scratch.
Nowadays it has competition in the name of Java, but in my opinion, C++ is more powerful, while Java is more handy.
It could be best summed up with the philosophy of C++:
"Trust the programmer. "
Java's philosophy is something different. Maybe it tells you something about why Java is preferred nowadays.
 

Deleted member 219079

D

Deleted member 219079

@GhostWolf; The answer I fear :(
I can't use C++. cuz the only tool I know of which can write and execute c++ projects is visual studio which requires way too much space from my HD..

C# ; same reason

+ I have 2mbps connection, and I don't have that much free time for 10 months..

I'd like to hear which language you rely on when you just wanna make "solitaire, calculator, calendar, notepad, sticky note, clock, always on top window that I can click through etc. simple stuff like that."

@Xonok Java forces you to include everything in classes it kinda feels odd :/
Windows supports compiled C++ projects by default, but java programs need their own environment (which even has security holes D:)

Those are my points against Java, otherwise I prefer it. My lack of knowledge can stab me in the back in the future if I face some kind of wall in Java, which could easily be done in C++ So can you like detail more your opinion of "C++ is more powerful, while Java is more handy", is there some impossibilities in Java?

@chobibo oh god I'm afraid of deep programming D:
 
Level 21
Joined
Mar 27, 2012
Messages
3,232
Java is designed to be portable and to achieve it it uses a virtual machines (the java runtime). This abstracts away how the hardware works and simply focuses on higher level programming.
There is also built-in garbage collection, which assumes that people simply shouldn't have to clear their memory(leaks).

C++ does indeed have libraries for garbage collection, but they are entirely optional and not a part of the standard library.
The general philosophy between C++ is that the language designers don't know and shouldn't know every possible use of the language. If a programmer wants to do something in a strange way, then they are allowed to do so, no matter what harm it may cause.
IDEs still catch some larger problems before compiling, but apart from that the language simply assumes that your code is written well.
Every mistake you make is your own.

Contrarily, in java there are some efficiency losses (from the virtual machine and garbage collection), but the cost is that the programmer doesn't have to care about how things works on a more fundamental level (memory management/leaks). This makes it easier to focus on higher level design.

So technically C++ is harder to write, but allows the machine code produced to be of higher quality.
 
Level 14
Joined
Jun 27, 2008
Messages
1,325
Hey,

so since everyone here seems to post mainly for the purpose of throwing around cool words and profiling:

What ur looking for is:
- Java
- C#
- Python
...
All these are modern languages which are comfortable to code and come with a rich set of functionality for GUI, Integration into Operating Systems, and endless other stuff.
Mentioning integratoin into the OS: since C# is designed mainly for Windows (Java, Python are very cross platform) its integration into the Windows Operating system is very very good. But if you just want to write standalone applications this is not very important.

C++ (and C) is a very old language which is still very good for some purposes, but not the weapon of choise for beginners who want to build an application as fast as possible. I know there are a lot of C++ fanboys around here, but anyone who thinks you will have less trouble learning c++ than Java is a complete idiot.


++ may be old as dirt, but it's still the best language around if you want to build something from scratch.
<- simply wrong
I can't use C++. cuz the only tool I know of which can write and execute c++ projects is visual studio which requires way too much space from my HD..
<- try gcc/mingw
So technically C++ is harder to write, but allows the machine code produced to be of higher quality.
<- Since java is usually not completely translated into machine code this is a weird comparison o_O!? Bytecode, JIT, ...

Assembler / ASM was a silly thing to mention here, forget about it.

I strongly encourage you to at least try thoroughly one statically typed language (C, C++, Java, C#, ...), and one dynamically typed language (JavaScript, Lua, Ruby, Python, ...).
Matter of opinion, and i agree. But he should start with one language and not learn two different ones at the same time.
 

Deleted member 219079

D

Deleted member 219079

What ur looking for is:
- Java
- C#
- Python
Oh nice! =D Thanks for the list. I haven't tried Python yet, is it as powerful as the other two?
 
Level 14
Joined
Jun 27, 2008
Messages
1,325
C# and Java are quite similar, both run on a VM, are mostly object oriented and they aim for similar purposes: writing all day applications. One could consider C# to be Microsofts copy of Java.

Python has a more prototyping/scripting style when you compare it to C# or Java. Some examples are:
- less object oriented
- dynamically typed (can be very comfortable, but its more prone to runtime errors), duck typing, ...
- better support for the functional paradigm

About your question: Both Python and Java/C# are equally powerful for everything you want to do.

For writing small programs/scripts python is probably the better choice. But in the very beginning of your career as a programmer it will hardly make a difference which language you learn. I could imagine that the more strict syntax of Java / C# is a bit less confusing and all that list stuff python has wont be very interesting. If you dont know what to do, go for Java.
 

Deleted member 219079

D

Deleted member 219079

Talk about Java being strict >.< that thing won't even allow more than one public class per file
 
Level 14
Joined
Jun 27, 2008
Messages
1,325
Thats not what i meant with strict.

Java is more object oriented than C++ or many other languages in terms that you cannot have code outside of classes. The one class per file thing is supposed to help you with code organization. If ur not familiar with this concept it might be confusing at first, but you will get used to it.

But keep in mind that this is a common thing in c++ too, you often have a .cpp and a .h file for each class.
 
Level 25
Joined
May 11, 2007
Messages
4,650
So:
If you're looking to learn programming, I suggest learning yourself C# or Java.

For my first games in C#, I used Monogames. Which you can download here:
https://monogame.codeplex.com/releases/view/122336

It's an open source edition of Microsoft's XNA. It allows you to create games in 2D and 3D.

If you want to create calculators, etc and simple programs like that. I suggest using C# Windows Forms Apllication, it allows you to create forms with Windows design and code how they should work with each other.

For java, well it's counterpart to Microsofts Forms is with Java Panels. It's included in Eclipse.

And Unity has a free version too, but you should only get to that part when you know how to code.
 

Deleted member 219079

D

Deleted member 219079

For java, well it's counterpart to Microsofts Forms is with Java Panels. It's included in Eclipse.
That's perfect as I do have eclipse atm :p I'll just look up for couple of tuts and hope i learn stuff
 
Level 15
Joined
Mar 31, 2009
Messages
1,397
This thread made my head hurt, especially before Ghostwolf came in.

Just god damn learn C, then C++, pointers are a vital part of understanding basic memory structures, and if you're doing anything with videogames you're going to be handling a massive quantity of data and arrays. Meanwhile OOP is excellent for games, rather than a struct and function based approach in C.

Pointers do work in C++, just books tend to gloss them over in lieu of fancy classes.
 
Level 14
Joined
Jun 27, 2008
Messages
1,325
Nobody said he should never learn C, but its a terrible language to start with. Same with memory structures: he wants to learn programming, not the theory of how memory management works.

Let him have some fun, let him write a small gui application that does useless things. Because this is what gives you the motivation to go on when learning something new, not cryptic types and seg faults.
 

peq

peq

Level 6
Joined
May 13, 2007
Messages
171
but java programs need their own environment (which even has security holes D:)

As a JVM fanboy I must defend Java :D The security holes which are sometimes reported all refer to the JVM sandbox. That is a feature which allows you to run a Java application with restricted permissions, for example without access to the filesystem. This feature was intended to allow Java programs to run in the browser. But as no one is using this feature of Java anymore, the security concerns are completely irrelevant.

If you write a C/C++ application you have a far greater chance of introducing security bugs into your application, as those languages are not memory safe and it is easy to use them incorrectly (heartbleed bug, etc.).

This thread made my head hurt, especially before Ghostwolf came in.

Just god damn learn C, then C++, pointers are a vital part of understanding basic memory structures, and if you're doing anything with videogames you're going to be handling a massive quantity of data and arrays. Meanwhile OOP is excellent for games, rather than a struct and function based approach in C.

Pointers do work in C++, just books tend to gloss them over in lieu of fancy classes.

Pointers are a leaky abstraction. In 99.9% of the cases it is enough to have references as in Java. The other 1‰ is low level programming (e.g. drivers) and some highly optimized code.
 
Level 15
Joined
Mar 31, 2009
Messages
1,397
The entire language itself is leaky. Did you know the JVM uses 128 bits PER CHARACTER IN AN ARRAY? It's a complete abomination of a language. Now go back to having fun with factories.

Pointers aren't an abstraction at all, they're literal memory addresses. Just like References, the only difference is that you can control when you use Pointers in C.
 
Level 14
Joined
Jun 27, 2008
Messages
1,325
Yea, you can do lots of cool things in C++. The problem is that you often dont want to care about these things and c++ forces you to. Im not saying always, there are definitely usecases where c++ is just perfect, but for many applications (no embedded stuff where you care about energy consumption, no performance critical things, ...) java is just more comfortable.

More comfortable to write, less prone to errors, faster to develop, compatibility, cheaper, ... these are the things that matter for most software companies and also for hobby programmers. Its not always about "full control", cool things you can do, performance..
 

peq

peq

Level 6
Joined
May 13, 2007
Messages
171
The entire language itself is leaky. Did you know the JVM uses 128 bits PER CHARACTER IN AN ARRAY? It's a complete abomination of a language. Now go back to having fun with factories.

I don't care so much about how much space a string uses internally, because most of the time it does not matter. I find it more important to have an easy handling of strings. With C++ I found it not so easy to write cross-platform code using unicode strings. It is not built into the language so you have to think about it.

Apart from that, I don't think 128bits per character is correct. Java uses UTF-16 for strings, which are 2 bytes / 16 bits per character. Maybe you have read something about memory alignment which would explain the 128bit, but I doubt that there is any JVM implementation which would align char arrays like that. At least on my JVM it works as expected.
 
Just go for C++, if you really want to learn to make stuff and program in general. Later, decide whether you want less (Java, Python, Perl, Ruby, etc) low level control, or more (C). Java is a terrible language to start with because it forces you to learn Java, not programming in general. A lot of stuff in Java is so specific to Java and abstract enough that a beginner can get away without understanding some of the most basic things. Learning to make stuff in C++ will make you write more code and force you to learn way more, but any transition to other languages will be comparatively easier.
 
Status
Not open for further replies.
Top