¿Con cuántos lenguajes de programación trabaja diariamente y cómo gestiona eficazmente las tareas específicas del idioma? [Cerrado]

22

Editar:

¿Cómo gestionas tareas individuales cuando trabajas en varios idiomas?

En el manejo diario de tareas, ¿con cuántos lenguajes de programación diferentes trabaja?

  • ¿Haces un cambio mental cuando trabajas en cada idioma?
  • ¿Los prioriza y mantiene cada tarea por idioma por separado?
  • ¿Codifica en etapas según el progreso de cada tarea cambiando sin problemas entre idiomas / IDE / Medio ambiente
  • ¿Aplica el mismo estilo de codificación / convenciones en todos los idiomas (no sintaxis)?

Relacionado:

¿Es normal que el programador trabaje en múltiples proyectos simultáneamente

Aditya P
fuente
1
Hacer el cambio mental es bastante fácil. El lapso mental principal que generalmente tengo es cuando trato de comparar cadenas con .equalsjavascript. Al menos siempre me equivoco de esa manera en lugar de usarlo ==en Java.
WuHoUnited
Escribo 3/4 idiomas en cualquier día para el mismo proyecto. ¿Cómo me gestiono? Conoce los idiomas Mantenga referencias a mano. Sigue las convenciones del lenguaje.
Plataforma
Pagar el costo de cambiar entre JavaScript y algún lenguaje de programación del lado del servidor no vale la pena hoy en día, cuando Node.js tiene el ecosistema de bibliotecas más grande del mundo y cuando puede escribir código sincrónico usando async / wait . El paradigma "Un idioma en todas partes" también es utilizado por Meteor (más de 35,000 estrellas GitHub).
Dan Dascalescu

Respuestas:

25

Hoy he escrito Java, Python, C ++ y SQL (si cuenta). Y he estado en el trabajo por menos de 2 horas.

Si haces esto regularmente, entonces el cambio mental se vuelve insignificante. No tiene nada que ver con la multitarea. Es como caminar un rato, luego conducir un automóvil, conducir una bicicleta y luego nadar. No hay problema, porque son cosas secuenciales.

En cualquier caso, el punto es completar una tarea antes de pasar a la siguiente. Tiendo a definir tareas en términos de una funcionalidad concreta, arreglo o tal. A menudo, esa tarea se realiza con un solo idioma, pero puede requerir varios de ellos. Por ejemplo, cuando trabaje con JNI , normalmente realizará cambios en los lados Java y nativo en paralelo.

Algunas respuestas:

¿Codifica en etapas en función del progreso en cada tarea cambiando sin problemas entre idiomas / IDE / Medio ambiente

Es importante poder cambiar sin problemas entre IDE, editores, entornos. Por lo general, los mantengo todos abiertos todo el tiempo.

¿Aplica el mismo estilo de codificación / convenciones en todos los idiomas (no sintaxis)?

Si se trata de una interfaz en la que están hablando dos idiomas, entonces sí, los nombres de las variables deben ser similares. De lo contrario, trato de aplicar el estilo de codificación típico de ese lenguaje.

revs Joonas Pulakka
fuente
8
suena como una carrera increíble
setzamora
Por lo general, trato de completar una tarea antes de pasar a la siguiente, pero una sola tarea puede requerir el uso de más de un idioma. Es imprescindible utilizar un IDE políglota como NetBeans y / o mantener abiertos todos los editores y entornos necesarios todo el tiempo. Entonces no necesita preocuparse demasiado por el lenguaje (que es solo un "detalle de implementación"), y puede concentrarse en la tarea (que es parte de lo que realmente se supone que debe lograr: un programa de trabajo).
Joonas Pulakka
Sería bueno si puede agregar lo anterior a su respuesta y agregar un poco sobre cómo maneja los estilos de programación de codificación / convenciones.
Aditya P
@AdityaGameProgrammer: se agregaron algunos puntos.
Joonas Pulakka
18

Hay un patrón formándose aquí:

  • Front end: lo que sea que se ejecute en un navegador (javascript, html y css)
  • Lógica empresarial: cualquiera de la gran cantidad de lenguajes de uso general
  • Backend: SQL
  • Build Script: algún lenguaje de script

Entonces, para mí es: javascript, HTML y CSS, C #, Transact-SQL y Windows Powershell.


¿Aplica el mismo estilo de codificación / convenciones en todos los idiomas (no sintaxis)?

No, hago un punto de programación de acuerdo con la convención del lenguaje. Un simple ejemplo:

   // C#
   int MyFunction() 
   {
       return 0;
   }

   // Javascript
   function myFunction() {
      return 0;
   }

Emplear convenciones de codificación visualmente diferentes me ayuda a hacer el cambio mental entre idiomas. Por el contrario, si mi código se veía igual en cada idioma, cometeré errores sintácticos al olvidar en qué idioma estoy codificando.

Andrew Shepherd
fuente
1
+1 Buena respuesta. Es genial que puedas mantener las convenciones y el estilo de codificación específicos del idioma.
Aditya P
Bueno ... en algunos casos Javascript te obliga a trabajar de esta manera debido al punto y coma implícito desagradable. Pero de lo contrario no vería ninguna razón para hacer eso ...
Billy ONeal
Además del estilo de codificación, otra forma de facilitar el cambio mental entre idiomas es configurar diferentes esquemas de color para cada idioma en sus editores / IDE.
Spoike
5

Como lo indica SK-logic, el cambio mental no debería ser un problema si utiliza lenguajes específicos de dominio bien elegidos. Pero a menudo no puede elegir el idioma, por lo que a veces toma un momento cambiar. En mi experiencia, la dificultad radica más en cambiar la sintaxis que en cambiar el estilo de programación. El único cambio molesto que siempre experimento es el cambio de estilo de comentario : si solo abro un archivo para cambiar rápidamente una línea de código, a menudo dice:

#  what
// the
;  f***
%  is
-- the one-line comment character or sequence?
Jakob
fuente
4

En mi último trabajo: Java, C ++, C #, JavaScript y VBScript.

Pero afortunadamente, todo lo anterior estaba en contextos muy diferentes (y en algunos productos), por lo que una vez que conocía cada base de código lo suficientemente bien, el cambio mental a diferentes contextos fue en realidad bastante fácil y lógico.

En verdad, lo que más me molestó fue la interrupción por problemas de soporte al cliente. Cambiar internamente a una tarea en otro idioma nunca fue un problema en sí mismo.

Mesas Bobby
fuente
2

Trabajo con 2 idiomas: c # y python.

Los uso en el mismo proyecto, pero obviamente para diferentes tareas.

Cuando estoy trabajando en una tarea, trabajo en esa tarea hasta que esté en un estado completo, o hasta que no pueda concentrarme más en ella. Esto significa que, si tengo que cambiar entre idiomas, hay poca o ninguna disonancia cognitiva, ya que habré dejado de pensar en cualquiera de los dos idiomas cuando haya terminado con la última tarea.

Es cierto que tomaré un breve descanso cuando salga de una tarea, lo que probablemente ayude mucho.

Matt Ellen
fuente
2

Lo menos posible Generalmente involucra 1. Python, más 2. Plantillas HTML, 3. HTML + CSS y algunas veces 4. Javascript. Cambiar de Python a JS definitivamente requiere un cambio mental, también porque necesito usar diferentes herramientas.

Agrego HTML + CSS como algo separado de la plantilla HTML, aunque es posible que no sean idiomas per se (o podrían depender de su religión), porque también requiere un cambio mental y el uso de otras herramientas, aunque no es tan malo como cambiar a Javascript Jugar con HTML + CSS desde una perspectiva de diseño, para hacer que la página se vea como la maqueta requerida, es una mentalidad diferente de hacer plantillas HTML. Pero es más ortogonal a Python que Javascript, lo que significa que necesito cambiar mi mentalidad de programación por otra. :)

Lennart Regebro
fuente
2

Diariamente uso:

  1. HTML / CSS
  2. Javascript / JQuery
  3. VBScript / JScript
  4. PHP
  5. SQL
  6. C # / Asp.Net

También uso Python, Java y XML (¿eso cuenta?) Ocasionalmente. Mi trabajo consiste en editar varios sitios web, que podrían construirse en cualquier idioma web (incluso tenía uno Perl una vez) y usar paradigmas / plantillas muy diferentes (de procedimiento, MVC, OOP, etc.).

Para responder la pregunta: utilizo principalmente Notepad ++ como mi IDE para los primeros 5 enumerados, luego Visual Studio para Asp.Net.

Puede ser una molestia cambiar rápidamente entre cada idioma, recordando si necesita o no punto y coma al final de las líneas, o si los bucles tienen llaves o no. Cambiar de VBScript a JScript es lo peor para esto: ambos archivos terminan en .asp y se ven bastante similares a primera vista, por lo que lleva un tiempo descubrir por qué obtengo errores.

whostolemyhat
fuente
¡Oye, tú también debes trabajar aquí! (j / k) Estamos reescribiendo la base de código ASP y .NET en PHP, exponiéndonos a la misma selección de idiomas.
greyfade
2

En este momento estoy escribiendo Ruby, PHP, Java, C y JavaScript y escribiré por un mínimo de 1 hora en cada uno de estos cada día. El problema principal es realmente una cuestión de encontrar el tiempo, ya que son todos para proyectos no relacionados.

Cambio mental

Mi estilo de trabajo es tal que me gusta trabajar durante largos períodos de tiempo. Desafortunadamente, esto significa que si solo tengo una cosa activada, cuando encuentro un bloqueo mental con un fragmento de código, me llevará mucho tiempo superarlo. No creo que tomar un descanso ayude tampoco. Al tener otros proyectos, y en particular otros idiomas, para cambiar cada vez que me atasco significa que para cuando vuelva al idioma original, inmediatamente tengo una solución.

Por lo tanto, sí, hay un cambio mental y creo que me hace mucho más productivo.

Priorizar tareas

Utilizo un administrador de tareas (gTasks para Android) y tengo una lista de tareas por separado para cada proyecto. Si un proyecto requiere varios idiomas, entonces no los separo. Esto generalmente se debe a que estarán fuertemente relacionados de alguna manera. Por ejemplo, JavaScript y Ruby por hacer algunas cosas de AJAX. Si los idiomas son técnicamente para el mismo proyecto, pero el proyecto es tan grande que esencialmente no están relacionados, es probable que los cuente como proyectos separados.

En general, mi prioridad es "la lista que tenga más tareas", pero siempre cambiaré si me encuentro con un problema.

Convenciones de codificación

Es un poco una mezcla:

  • Si el proyecto se desarrolla con otros, entonces obviamente cumpliré con las convenciones que se hayan decidido para ese proyecto.
  • Si el proyecto es personal, me gusta que mi código se vea coherente con el estilo dominante en la comunidad / biblioteca estándar para un idioma determinado. Me resulta difícil leer el código Java si todas las funciones de los usuarios están en snake_case, por ejemplo. Igualmente, los métodos camelCase en Ruby se ven raros y fuera de lugar.
  • Para las convenciones que no se hacen obvias simplemente usando un lenguaje, como la sangría, tenderé a adoptar mis propios estándares y a usarlos en todos los idiomas que uso. En el caso de la sangría, siempre uso 2 espacios. Para el estilo de llaves, siempre uso lo que Wikipedia está decidiendo actualmente llamar el Estilo de legibilidad de control compacto .

Aparte: el mayor desafío para mí es cambiar de idioma de estilo. Es muy difícil correr al codificar SASS junto con Ruby y luego tener que volver a CSS para todo lo demás. En menor medida, tengo el mismo problema con HAML / HTML y JSON / XML.

Rupert Madden-Abbott
fuente
2

Escribo aplicaciones para el lado de ISP, también existe una cultura de "haz lo que te resulte cómodo", a menudo escrita por muchos ingenieros de redes que incursionan en la programación. Tengo que lidiar semanalmente con programas que están bastante bien escritos, para los realmente horrorosos. Lo que a menudo encontraré y trabajaré ...

  • Perl , a menudo guiones únicos rápidos, o a menudo utilizados por personas que solo conocen (o les gusta) Perl. Más de las cosas heredadas están escritas en Perl que encuentro. Algunas de las peores cosas están escritas en Perl, no porque el lenguaje sea malo, sino porque los programadores principiantes lo maltratan fácilmente. Todavía lo uso para ciertos tipos de programas únicos. Raramente lo uso para algo más grande.
  • PHP , mucho de esto, a menudo un lenguaje de inicio para los aficionados. Algunos programas muy bien escritos, algunos schlock. Para ciertos tipos de aplicaciones web, elegiré PHP porque puedo hacerlo más rápido.
  • Shell Scripting , principalmente lo usa para ejecutar otros programas o tareas como leer registros.
  • Espere , aún encuentre esto (y fanáticos que insisten en que es nirvana para ejecutar comandos en dispositivos de red). Trabajo en ello cuando tengo que hacerlo, pero un gatito bebé es asesinado en algún lugar del mundo cuando me encuentro con uno de esos miles de líneas de programas largos sin una sola función a la vista, solo una granja de pasta iterativa larga.
  • C , Raramente se usa debido a problemas de portabilidad, pero lo usaré para realizar tareas específicas.
  • Java , lo uso a menudo debido al amplio soporte de la biblioteca y la fácil implementación. Tenemos una red muy heterogénea y un personal de TI que tiene una agenda diferente a la mía. Con Java puedo incluir bibliotecas y no preocuparme de que TI tenga que "actualizar" algo en el sistema que necesito para implementar el programa. Muy a menudo este es mi lenguaje de programación de elección.

También hay otros idiomas (.net, VB, Phyton, Rails, etc.) en la empresa, pero no he tenido que trabajar en ellos ... todavía.

Editar, para editar ...

Tienes que cambiar mentalmente cuando trabajas entre idiomas. Lo más frecuente es que pierda la noción de la sintaxis. Tengo una colección de libros de referencia listos. Descubriré que toma aproximadamente media hora volver a la mentalidad del otro idioma. Cuanto más obtusa sea la sintaxis para el idioma, más largo será el cambio. Me parece que pasar de hacer Java a hacer Perl probablemente lleve más tiempo si no lo he tocado por un tiempo. Cuanto más haces esto, más fácil se vuelve.

Bill
fuente
1

A menudo estoy usando seis o más idiomas dentro de un proyecto. La mayoría de ellos generalmente son específicos de ese proyecto solamente.

El cambio mental solo es necesario si está utilizando un lenguaje que no es apropiado para una tarea. De lo contrario, es natural usar el mejor ajuste. Se utilizan diferentes conjuntos de idiomas para diferentes etapas de un proyecto.

SK-logic
fuente
¿Eres gerente de proyecto o codificas en ellos?
Aditya P
@AdityaGameProgrammer, codifico en ellos.
SK-logic
¿Te importaría explicar un voto negativo?
SK-logic
1

Utilizo C (incrustado), C ++ (escritorio), Python, Matlab y VHDL (una especie de lenguaje de programación de hardware) con frecuencia, a menudo todo en el mismo día. En mi entorno, este tipo de destreza del lenguaje es esencial en mi opinión.

A menudo no puedo obtener todo lo que necesito en un proyecto en particular en un idioma de manera eficiente. Por ejemplo, tanto el C incrustado como el VHDL tienen un nivel bastante bajo, por lo que a menudo uso Python para analizar sus resultados (o incluso generar código).

Cambiar entre ellos rápidamente no es un problema después de un tiempo, es como cambiar de un martillo a un destornillador: la herramienta adecuada para el trabajo.

Martin Thompson
fuente
1

Realmente depende de cómo se define el trabajo ... Uso C # para desarrollar aplicaciones de Microsoft Surface todos los días. Java también lo uso todos los días para mis aplicaciones de Android. Pero trato de educarme y comencé a usar R, Ruby y Objective-C. A veces también necesito algo de SQL y si incluye lenguajes de script y otros idiomas en su pregunta, también JavaScipt, SPARQL y BeanShell.

¿Aplica el mismo estilo de codificación / convenciones en todos los idiomas (no sintaxis)?

Trato de seguir las convenciones de codificación de cada lenguaje, pero especialmente entre Java y C # Tengo algunas dificultades debido a las llaves y el nombre de método en mayúsculas en C #:

public void test() {
   ...
}

vs.

public void Test()
{
   ...
}
RoflcoptrException
fuente
Cualquiera de los estilos de llaves es aceptable en C #. No pases demasiado tiempo gravando tu cerebro sobre esto. :-)
Cody Gray
0

Construyo aplicaciones web. Así que actualmente es:

  • XHTML
  • JavaScript
  • C # como parte de la
  • ASP.Net Framework (este tipo de lenguaje también es)
  • T-SQL para la comunicación de bases de datos
  • Inglés para comunicarse con los humanos.

Editores: Sublime Text (fuera de elección), Visual Studio 2010 (no hay otra opción factible cuando se trata de ASP.Net)

5arx
fuente
0

En mi trabajo uso Java, C, Python, Django y pequeños bits de PHP. También trabajé en un proyecto realmente pequeño en C ++ de Microsoft.

No los uso todos los días, pero algunos días los uso sin problemas. En un día típico solo uso uno o dos. La programación que hago en casa generalmente implica trabajar con tecnologías diferentes a las que uso en el trabajo como Qt o Ruby on Rails.

jonescb
fuente