Welcome to Gaia! ::

Boo, Javascript or C#

I am intending to start a pet project within unity3D and for a scripting language the above are used.
What would be the most useful within the project and potentially in later life.
Disconsented
Boo, Javascript or C#

I am intending to start a pet project within unity3D and for a scripting language the above are used.
What would be the most useful within the project and potentially in later life.
Yes.
psychic stalker
Disconsented
Boo, Javascript or C#

I am intending to start a pet project within unity3D and for a scripting language the above are used.
What would be the most useful within the project and potentially in later life.
Yes.

Unexpected.
Disconsented
psychic stalker
Disconsented
Boo, Javascript or C#

I am intending to start a pet project within unity3D and for a scripting language the above are used.
What would be the most useful within the project and potentially in later life.
Yes.

Unexpected.
Why? It's kind of a silly question, TBH.

There is no language, save for COBOL and ALGOL (and probably PHP), that is not worth learning.

And given that the scripting host is based on Mono, it stands to reason that most, if not all, .NET-hosted languages (including Nemerle, F#, and others) also work besides C# and Boo.

So which would be the most useful? That's a poor question. A better question is which isn't worth bothering with. The answer isn't relevant.

Therefore, "Yes."
psychic stalker
Disconsented
psychic stalker
Disconsented
Boo, Javascript or C#

I am intending to start a pet project within unity3D and for a scripting language the above are used.
What would be the most useful within the project and potentially in later life.
Yes.

Unexpected.
Why? It's kind of a silly question, TBH.

There is no language, save for COBOL and ALGOL (and probably PHP), that is not worth learning.

And given that the scripting host is based on Mono, it stands to reason that most, if not all, .NET-hosted languages (including Nemerle, F#, and others) also work besides C# and Boo.

So which would be the most useful? That's a poor question. A better question is which isn't worth bothering with. The answer isn't relevant.

Therefore, "Yes."

I guess I should have expected this but thank you for you input.
I would start with Javascript if I were me.
Then go to Java, then C# (Very similar, but I'm java biased )
And then Boo (Since I haven't actually tried that yet)
You can start with any of those since the question (as mentioned already) isnt relevant, they are all object-oriented as far as I know. if you already know how to write code and make a program, then the learning curve is far less steep when switching from one programming language to another. Try to write a sample program in either one of them and pick one that suits.
Disconsented
Boo, Javascript or C#

I am intending to start a pet project within unity3D and for a scripting language the above are used.
What would be the most useful within the project and potentially in later life.


Javascript is a terrible language, in that is is lacking in many high level features that greatly increase developer productivity which are common in modern languages (including Boo and C#). While it lacks these features, it also lacks the performance characteristics of other languages that lack these language features (such as C).

The only real use of Javascript is that you need Javascript to write client side web scripting. If this is something you intend to do in future, this is a pro for Javascript.

Boo and C# are very similar and mostly differ in syntax. They both have some nice somewhat.

C# has more documentation available on the internet.

You may prefer the Boo syntax over the C# syntax. Google both of them, look at the Wikipedia pages and see which seems better to you.

On a side note: Someone mentioned that COBOL isn't worth learning. Look at the current salaries for COBOL. stare
Sitwon's avatar
  • 50
  • 100
  • 150
michaelaisgreat
Javascript is a terrible language, in that is is lacking in many high level features that greatly increase developer productivity which are common in modern languages (including Boo and C#).
Could you elaborate on this? Specifically, which features is JavaScript missing?
Sitwon
michaelaisgreat
Javascript is a terrible language, in that is is lacking in many high level features that greatly increase developer productivity which are common in modern languages (including Boo and C#).
Could you elaborate on this? Specifically, which features is JavaScript missing?


Of course, not all languages have all possible features and different types of languages have different types of features due to various trade-offs.

My problem with Javascript is that it trades off performance without any real benefits. This is likely due to it's origin. Today it is used in a much wider scope than it was ever designed for.

Javascript supports some OOP features, but poorly:

Perhaps the most important is the poor support of inheritance, interfaces, and other OOP concepts in general. Many OOP concepts (including inheritance) only work at all due to horrible hacks.

A good type system, so refactoring is difficult.

Proper support for scope, visibility and namespaces.

Multithreading.

Reflection.

Javascript is also partly a functional language, however it lacks features that most functional languages have.

Again, many of these features stem from a strong type system. It also lacks pattern matching and various other functional features (see Haskell).

Again, like with OOP, many of these features can be hacked to work. (but it's ugly).

Worse, Javascript lacks much of the syntax sugar that other languages have. e.g. C#'s "yield", various functional language features are native to languages such as Haskell, whereas they require additional libraries for Javascript.
michaelaisgreat
Javascript supports some OOP features, but poorly:

Perhaps the most important is the poor support of inheritance, interfaces, and other OOP concepts in general. Many OOP concepts (including inheritance) only work at all due to horrible hacks.
I think you're confused about prototypal systems. JavaScript's OOP is based on the idea of object prototypes. It's actually a more powerful concept in some ways than the less dynamic class-based object systems common to languages like Java and C++. Just because it's different doesn't mean it has "poor support" for your favorite language feature.

Moreover, IMO, OOP itself is overhyped when you're talking about class-based systems. There are other ways of writing code that are more powerful and more maintainable than the likes of Java, C#, C++, etc.
michaelaisgreat
A good type system, so refactoring is difficult.
... Huh?
michaelaisgreat
Proper support for scope, visibility and namespaces.
Given that JavaScript was never intended as more than a glue language for browser plugins, that shouldn't be surprising. You don't need those tools for small projects.

You also don't need them for large projects if you enforce a consistent and sensible code style.
michaelaisgreat
Multithreading.
It's event-based. A JavaScript VM can be written to implement events in a threaded manner. There's nothing preventing that.
michaelaisgreat
Reflection.
.... Wat.

Are you seriously complaining that JavaScript lacks reflection?

Do you even know what the for...in loop does when used with objects? Do you know about the hasOwnProperty() and hasProperty() methods? Do you even know how prototypes work?
michaelaisgreat
Javascript is also partly a functional language, however it lacks features that most functional languages have.
.... Such as...?
michaelaisgreat
Again, many of these features stem from a strong type system. It also lacks pattern matching and various other functional features (see Haskell).
No, they don't. Many languages with weak type systems have these features. The likes of SNOBOL, Lua, and others exemplify this.
michaelaisgreat
Again, like with OOP, many of these features can be hacked to work. (but it's ugly).
The same can be said of any turing-complete language.
michaelaisgreat
Worse, Javascript lacks much of the syntax sugar that other languages have. e.g. C#'s "yield", various functional language features are native to languages such as Haskell, whereas they require additional libraries for Javascript.
So what? How is this a problem?

If you think you need a "yield" construct in JavaScript, then I contend that you don't understand JavaScript. The concept of "yield" in C#, for example, is predicated on its implementation of iterators. In Ruby, "yield" is merely syntax sugar for an anonymous function call (more or less - it yields execution to a block that behaves similarly to a lambda).

That you complain about such a specific type of syntax sugar tells me that you approach JavaScript with a C# mindset. That is how you write only bad JavaScript: By treating it like something else. Instead, go read Eloquent JavaScript, and learn how to think in JavaScript. Only then will you be able to make credible complaints about JavaScript.
Sitwon's avatar
  • 50
  • 100
  • 150
psychic stalker
michaelaisgreat
Again, many of these features stem from a strong type system. It also lacks pattern matching and various other functional features (see Haskell).
No, they don't. Many languages with weak type systems have these features. The likes of SNOBOL, Lua, and others exemplify this.
Let's not forget Erlang, which is at least as popular and novel as Haskell, has weak-typing by design and it works out just fine.
psychic stalker
Given that JavaScript was never intended as more than a glue language for browser plugins, that shouldn't be surprising


You pretty much sum up the entire problem with Javascript in your reply here. Javascript, as a scripting language for simple webpages (i.e. what it was designed for) is fine. Practically every other use of Javascript is an ugly hack, which wastes developer time, often leads to poorer quality code, and leads to unmaintainable code.


Perhaps I should have been more specific. Due to Javascript's ability to dynamically modify objects, etc., automated refactoring can have complexity higher than that of the halting problem. Unlike languages such as Java/C#/C++/Haskell/F# in which the complexity of automated refactoring is within polynomial time.

I would hope that someone who understands Computer Science would understand the importance of automating programmer workflow.

Quote:
It's event-based. A JavaScript VM can be written to implement events in a threaded manner. There's nothing preventing that.


Ah, but most (do any?) don't actually support it.

As for reflection, I'm afraid I should have been more specific. I meant dynamic code generation.



You then quote various things I stated out of context, perhaps you missed the point? As you stated, Javascript is Turing complete so it is capable of the same logic as any other Turing complete language - however, it often requires more code full of ugly hacks which are prone to bugs than some more elegant language. i.e. Javascript makes the job of a developer harder.

As a mental exercise, consider some reasonably complex algorithm. Perhaps AES. Consider how long it would take you to implement (and then debug) in both Javascript and your choice of Java/C++/C#, etc.
michaelaisgreat
You pretty much sum up the entire problem with Javascript in your reply here. Javascript, as a scripting language for simple webpages (i.e. what it was designed for) is fine. Practically every other use of Javascript is an ugly hack, which wastes developer time, often leads to poorer quality code, and leads to unmaintainable code.
Which seems like an utterly irrelevant complaint, especially given that the particular use of JavaScript in the OP's case is a dialect of the language created for scripting a game engine.
michaelaisgreat
Perhaps I should have been more specific. Due to Javascript's ability to dynamically modify objects, etc., automated refactoring can have complexity higher than that of the halting problem. Unlike languages such as Java/C#/C++/Haskell/F# in which the complexity of automated refactoring is within polynomial time.
IMNSHO, automated refactoring is a crutch for weak-minded programmers. If you need to rely on an automated tool for refactoring, it's my opinion that your problem is one that will require more thought on your part. Refactoring willy-nilly is a counter-productive endeavor. Automated refactoring tools just let you morph your code with far less forethought than you ought to have.
michaelaisgreat
I would hope that someone who understands Computer Science would understand the importance of automating programmer workflow.
Oh, I understand the importance of workflow.

But I also understand the limits of automation. When I automate, I write my own tools. I don't depend on IDEs to do my work for me. I want to understand my problem space, not will it away with broken tools.
michaelaisgreat
Ah, but most (do any?) don't actually support it.
So?
michaelaisgreat
As for reflection, I'm afraid I should have been more specific. I meant dynamic code generation.
So? JavaScript does have those facilities, so it's absurd to insist that it doesn't.
michaelaisgreat
You then quote various things I stated out of context, perhaps you missed the point? As you stated, Javascript is Turing complete so it is capable of the same logic as any other Turing complete language - however, it often requires more code full of ugly hacks which are prone to bugs than some more elegant language. i.e. Javascript makes the job of a developer harder.
Perhaps for someone who approaches it from a C# perspective.

Programmers who understand their tools find the job easy. Programmers who do not understand their tools find their job hard. JavaScript is only hard because you do not immerse yourself in its mindset. It makes your job harder, because you're trying to use it like you use other tools.

Yes, it's hard to nail a screw into wood. But that's because you're supposed to use a hammer with nails, and a screw driver with screws. Doing so otherwise is a waste of your energy. Writing JavaScript like you write C# is a waste of your energy.

I'll put it this way: If you have to write an "ugly hack," you're doing something very wrong and you should probably rethink your entire approach.
michaelaisgreat
As a mental exercise, consider some reasonably complex algorithm. Perhaps AES. Consider how long it would take you to implement (and then debug) in both Javascript and your choice of Java/C++/C#, etc.
As a mental exercise, consider that I wouldn't do that. I would write it in whatever way makes the most sense. Writing AES in JavaScript does not make sense. Likewise, writing it in C#, C++, or Java does not make sense. It makes sense to write it in C, and to plug it into the language runtime you plan to use.

Again, your complaints make no sense in the context of this thread, or otherwise.

I contend, still, that you do not understand your tools.
RiotFinger's avatar
  • 300
  • 50
  • 50
Disconsented
Boo, Javascript or C#

I am intending to start a pet project within unity3D and for a scripting language the above are used.
What would be the most useful within the project and potentially in later life.

Javascript = Web browser scripting code.
C# = Windows binary programming language.

To code for a website, or to make an executable application?
Major differences.

Quick Reply

Submit
Manage Your Items
Other Stuff
Get Items
Get Gaia Cash
Where Everyone Hangs Out
Other Community Areas
Virtual Spaces
Fun Stuff