C# o Javascript

pablofer2

Buenas chicos.

Empiezo a meterme en esto del desarrollo en Unity y lo primero que me encuentro es que tengo que elegir el lenguaje sobre el cual desarrollar.

La pregunta es facil, C# o Javascript, y si me podeis decir pros/contras mejor que mejor.

Muchas gracias.

VicoViper

#1 C# sin ninguna duda

Podría hablarte de rendimiento, de las flexibilidad del lenguaje y de lo útil que te será más adelante...
Pero es que no hace falta, en una palabra: Comunidad.

La mayoría de mensajes que leas en foros, son consultas de C#. La mayoría de libros, artículos y demás, todo en C#. Así que si quieres sacarle todo el partido, mi consejo es C#.

7
FernandoA

#1 C#. Más complejo y más exigente pero mucho mejor. De por si ya me parece simplemente el mejor lenguaje orientado a objetos pero es que además Unity no utiliza realmente Javascript, si no lo que llaman UnityScript. Aquí están las diferencias. C# aparte de ser mejor te resultará más útil.

Si tienes experiencia previa con Javascript o Php y ninguna en C/C# el cambio te sentará peor que una patada en los mismísimos, pero aun a pesar de esas dificultades iniciales que se pudieran tener seguiría recomendado C# con los ojos cerrados.

NachoGFT

Básicamente lo que ya te han dicho, así que tan sólo vengo a reforzar la opinión ya dada.

Como lenguaje para desarrollar videojuegos, C#. Sobre todo teniendo en cuenta que la alternativa es UnityScript y no Javascript (como te han comentado) y se carga algunas de las cosas molonas que tiene. Pero es que además, como también se ha mencionado, la gran mayoría de recursos sobre Unity están en C#. Tanto lo escrito, como vídeos, como comunidad.

pablofer2

Perfecto, siempre habia oido que C# por el hecho de ser mas potente. Si ademas me decis que hay mucho mas material y por aqui programais asi me lanzo de cabeza.

Muchas gracias chicos!!

FrUcTuS

¿Gente tiene algo que ver C++ y C#?

Es que en primero de carrera dimos C++ y me gustó bastante, ¿es una versión mas avanzada de C#? ¿Deberia aprender C# si tengo conocimientos de C++ (Vamos a dejarlo en que lo dí hace mucho tiempo xD)? ¿Tienen algo que ver mejor dicho? xD Gracias gente! :D

Edit. Perfect Muchas gracias por las respuestas. Sois unos cracks.

4 respuestas
herre

#6 C# se parece más a Java que a C++.

Los tres son lenguages distintos.

La confusión entre C, C++ y C# y Javascript y Java es prueba de aquello que una de las cosas más difíciles en programación es nombrar cosas.

3
segudj

#1 Son dos campos completamente distintos.
Si quieres dedicarte solo a videojuegos y en un futuro poder optar a plataformas más potentes como Unreal Engine, C#

Si por el contrario deseas tener un futuro ligado a la parte cliente de desarrollo web, javascript.

Disfruta de la programación y calientate la cabeza a tope.

mortadelegle

Aunque ya lo hayan dicho antes, C#, eno se ahora, pero antes el javascript de unity era casi mas bien un dialecto (Lo llamaban unityscript) que javascript normal

Siempre nos quedara Boo...

VicoViper

#6 Si has dado C++, no tendrás problemas con C#, al principio la "gramática" es un poco distinta, pero al final a la hora de trabajar es lo mismo (aunque echaras de menos los punteros y poder pasar algunos parámetros por referencia con la facilidad que se hace en C/C++).

1 1 respuesta
FernandoA

#10 Bueno, lo de pasar por referencia es solo poner un ref o un out delante del parámetro en lugar de un *, tampoco es tan dificil. Y todos los objetos son punteros, así que no debería echarlos de menos. Yo de C++ no se nada (Aprendí C puro y duro). Pero si sabes C/C++ y conoces la programación OO, no es nada díficil (más bien se disfruta usándolo).

Y como apunte para #6 C++ no es una versión más avanzada de C#. En todo caso sería lo contrario aunque realmente no tienen nada que ver. De hecho el nombre viene de (Según Wikipedia):
El nombre C Sharp fue inspirado por la notación musical, donde '#' (sostenido, en inglés sharp) indica que la nota (C es la nota do en inglés) es un semitono más alta, sugiriendo que C# es superior a C/C++. Además, el signo '#' se compone de cuatro signos '+' pegados.

1
cabron

#6

C# viene de Java, no de C++

La historia resumida es que MS intento monopolizar Java cuando estaba en auge con una tecnología propia llamada J++, Sun Microsystems, dueños de Java por aquel entonces, denunció a Microsoft, ganaron el jucio y MS tuvo que abandonar J++, para más tarde sacar C#

1 1 respuesta
r2d2rigo

#12 de eso nada. C# es Java bien hecho, de 0, sin caspa. El propio Anders Hejlsberg dice que esta mucho mas inspirado en C++ que en Java, por no hablar del soporte de tipos por valor (que Java no tiene) o de los genericos/templates (que en Java apesta). A estas alturas se parecen como un huevo a una castaña, salvo que ambos son interpretados y compilan a un bytecode intermedio.

Y ojo que J++ se desarrollo previa licencia a Sun, pero estos montaron el litigio de violacion de trademark porque todas las implementaciones de Java deberian ser compatible y bla bla.

2 respuestas
cabron

#13

Anders Hejlsberg podrá decir misa que cualquiera que haya usado C#, Java y C++ no ve la inspiración de C++ por ningún lado y ve un clon de java, y obviamente hablamos del lenguaje original, no de como ha evolucionado después de 15 años...

Y sobre el juicio no hay ningún bla bla bla, a ver si ahora las prácticas monopolísticas de MS son un cuento para asustar a los niños, hicieron una versión no compatible cuando tenía que serlo, ¿te suena Embrace, extend and extinguish?

Pero vamos, que me importa bastante poco el tema para seguir discutiendo más allá de lo que ya se ha dicho, si quieres insistir en que el lenguaje que salió hace 15 años era una evolución de algo, o que mejoraba java en algo, pues piénsalo si quieres.

2 1 respuesta
r2d2rigo

#14

http://docs.oracle.com/javase/7/docs/technotes/guides/language/strings-switch.html

JDK 7. 2011. WHOOPS.

1 respuesta
cabron

#15

C++ no puede hacerlo tampoco, ni siquiera hoy día ¿por qué C# sí si está inspirado en C++? :psyduck:

MTX_Anubis

#13 Calla que los tipos de valor ya están incluidos en java 10 en el 2018 (que será para el 2020 xD). Por lo demás estoy con cabrón aunque comparto tu visión de java.

EnderFX

Sólo vengo a echar más leña al fuego: C# se habrá inspirado en lo que sea, pero es gemelo de Java, y primo lejano de C++.

Basta con ver, desde el punto de vista del programador, lo diferente que es la transición de Java -> C# (que al principio prácticamente te basta con cambiar las palabras reservadas de Java por las de C#) y la de C++ -> C# (que se parece más a C++ -> Java). No tengo el conocimiento suficiente para entrar a valorar cómo se interpreta, compila y ejecuta internamente el código, sólo hablo de la capa superior.

Que alguien me corrija en esto, pero creo que C# está mucho más pensado para y orientado fuertemente a la programación orientada a objetos. En C++ se puede hacer también, pero se ve claramente que, al igual que C, está mucho más orientado a programación funcional.

Dicho esto, #1, si no tienes pensado en el futuro ponerte a picar frontend web o probar con el "polifacético" NodeJS, C# del tirón. Código más elegante, más comprensible (menos "mágico" / más explícito), y aprendes Java gratis ;).

1 respuesta
MTX_Anubis

#18 Creo que tienes un buen cacao.

En el caso de C su paradigma es el de programación imperativa pura y dura. En el resto son multiparadigma aunque el principal es la programación orientada a objectos. Ninguno de ellos tiene como paradigma principal la programación funcional.

Que puedas crear solo funciones o que con el tiempo estén añadiendo características de los lenguajes funcionales no convierte no convierte a estos lenguajes en funcionales, vamos es que ni están orientados a serlo.

1 respuesta
EnderFX

#19 tienes razón. He utilizado el término programación funcional pensando que era lo que no era, y no tiene sentido.

pablofer2

Chicos muchas gracias a todos. Pasamo a una segunda pregunta, ya simplemente por curiosidad.

¿Monodevelop o Visual Studio? Veo que ambos son bastante pesados y tardan algo en abrirse, son los mejor para picar codigo?

1 respuesta
cabron

#21

Visual Studio de lejos, no hay ni punto de comparación.

B

Yo también vengo a echar más leña al fuego jaja, extraído de wikipedia sobre C#

"By design, C# is the programming language that most directly reflects the underlying Common Language Infrastructure (CLI).[40] Most of its intrinsic types correspond to value-types implemented by the CLI framework. However, the language specification does not state the code generation requirements of the compiler: that is, it does not state that a C# compiler must target a Common Language Runtime, or generate Common Intermediate Language (CIL), or generate any other specific format. Theoretically, a C# compiler could generate machine code like traditional compilers of C++ or Fortran."

Para mi, ahí es dónde se acaba le discusión sobre C# y C++ xD. De base están diseñados para cosas distintas.

GuaNaGe

Yo llevo 4 semanas empezando a programar en primero de DAW y todos los profesores nos han dicho que C# es infinitamente mejor que JavaScript. Lo poco que toque el C# (que es lo único que toque en programación) tengo que decir que es super cómodo y estoy utilizando el entorno Visual Studio.

PaCoX

pues si, c# es mucho mejor k javascript y que java.
En java los genéricos son syntactic sugar para hacer cast... xD

6 años después
B

Saludos, refloto el hilo en busca de cursos, libros, canales, etc de C#. El hijo de un amigo está empezando una carrera privada orientada a videojuegos y quiere refuerzo de programación de C# para Unity.

¿Cursos buenos en inglés en udemy o similares?
¿En español?
¿Libros?
¿Canales de Youtube?

Hablamos de iniciación en la programación, por lo que busco nivel iniciación y medio.

Con o sin Unity de por medio. Gracias de antemano.

1 respuesta
totespare

#26 yo conozco a este señor, que explica de puta madre, empezaría por aquí: https://www.youtube.com/watch?v=6EBNIgkrU74&list=PLU8oAlHdN5BmpIQGDSHo5e1r4ZYWQ8m4B

Si luego no te importa que sea en inglés, y lo quieres con Unity, el bueno de Ben Tristem tiene aun su curso en udemy: https://www.udemy.com/course/unitycourse2/

1

Usuarios habituales

  • cabron
  • pablofer2
  • EnderFX
  • MTX_Anubis
  • r2d2rigo
  • FernandoA
  • VicoViper