2010-11-19 12 views
17

Mucha gente en mi laboratorio usa Processing. Ciertamente, su trabajo es genial, pero me pregunto ¿cuál es la ventaja de usar Processing sobre Java simple? ¿Me permite hacer cosas que de otra manera sería realmente difícil?Procesamiento frente a (simple) Java

Sí, he consultado http://processing.org, pero realmente no explica por qué Processing es algo más que Java con un IDE y un conjunto de bibliotecas bien definidos.

Respuesta

14

Solo póngalo de esta manera --- parece que Processing está simplemente creando otra capa de abstracción para "enmascarar" ciertos elementos programáticos en Java que se considerarían "difíciles" para un principiante.

En esencia, la abstracción nos permite realmente "hacer cosas más fácilmente" con menos conocimiento previo sobre el tema. Si tuviera que crear/procesar imágenes en Java simple, eso sería un dolor de cabeza.

El procesamiento parece que crea ese marco, por lo que lo único que debes hacer es usar las herramientas disponibles (¿puedes arrastrar/soltar si no me equivoco?) Para crear un producto final sin hacer las cosas más difíciles.

+2

+1, pero no creo que lo difícil tenga tanto que ver con eso como con el clunkiness. – cgp

+2

Aquí una comparación entre Processing y Java http://wiki.processing.org/w/Java_Comparison – Lobo

+1

@Lobo ese enlace está muerto. – Cyoce

3

Solo una suposición total (no sé nada sobre Processing), pero a la gente le gusta ser expresivo, y Java es el lenguaje menos elegante que conozco. Si Processing le permite ser elegante, probablemente sea muy atractivo para las personas que sienten lo mismo que yo sobre Java.

+12

"Java es el lenguaje menos elegante que conozco". - ¿Alguna vez has usado C? – jjnguy

+0

Creo que la expresividad de procesamiento es la misma que la de Java, porque en realidad es el mismo lenguaje. – fortran

+4

@jjnguy: Java es excesivamente detallado sin ser elegante. C no es tan malo. No necesita casi todos los repetidores de programas sencillos y C al menos tiene su naturaleza de bajo nivel como excusa para perder pulsaciones de teclas. Java es de alto nivel pero se desperdicia en su implementación demasiado detallada de OO. –

5

Básicamente está cambiando de marca. Está dirigido a artistas, músicos, aficionados y niños de 10 años en lugar de programadores. Si le dices a un estudiante de arte que tiene que aprender Java, es probable que se niegue con la idea. Después de todo, Java es un lenguaje bastante complicado y él habría abordado los conceptos de OOP (que, contrariamente a la propaganda, no es intuitivo para los humanos normales no programadores).

Procesamiento (y sus idiomas hermanos Processing.js y Wiring (que está en C)) es más un estilo de programación + una biblioteca muy grande, fácil de usar y bien documentada. Los programas en Procesamiento generalmente son de naturaleza procesal en lugar de OO. No se espera que los programas sean más grandes que un solo archivo, aunque puede hacerlo si lo desea. Por otro lado, la biblioteca incluida es de muy alto nivel y puede hacer mucho en solo una docena de líneas de código.

¿Por qué bastardecer Java/javascript/C de esta manera? Bueno, es para eliminar tantas barreras como sea posible para escribir código. Recuerde el público objetivo. Se supone que debes poder enseñar Processing a tu hija de 12 años en un par de tardes y que ella podría animar corazones rosados ​​y unicornios en la pantalla si así lo desea.

+2

-1 mirándolo de esa manera, todos los lenguajes son simplemente 'cambio de marca': resumen para ocultar la complejidad. Tome cualquier lenguaje, marco o biblioteca y podría hacer los mismos comentarios peyorativos al respecto. ¿O escribes programas directamente en código de máquina? – Fraser

+0

@Fraser: No en el mismo sentido. Procesar IS Java en el sentido de que es simplemente una biblioteca + IDE. El procesamiento no solo tiene sintaxis Java, sino que también utiliza el tiempo de ejecución de Java y el compilador de Java, y todo en Java. No puede decir lo mismo con Perl o Ruby que no tiene sintaxis C y no utiliza el compilador de C aunque se implementaron en C. – slebetman

+0

@Fraser: Nada en mi respuesta anterior fue peyorativo de ninguna manera. ¿Por qué crees que tengo una visión negativa del procesamiento? Por el contrario, estaba complementando el procesamiento. – slebetman

12

Procedente de un antiguo estudiante de arte de medios que utiliza Processing y Open Frameworks y Cinder, Processing en su propio universo autónomo es ideal para crear interesantes gráficos interactivos y no interactivos, sonido e incluso modelos 3D a veces. Pero cualquier persona con conocimiento avanzado o interés en Procesamiento, aprenderá rápidamente que cualquier cosa que valga la pena crear para crear un efecto que no sea divertido probablemente requiera una comprensión e implementación de los principios de OOP, junto con darse cuenta de que el procesamiento no es el final y el el resto de Java está ahí para jugar y comenzar a usar Processing como una biblioteca dentro de eclipse u otro IDE, para el desarrollo de Java, al igual que cualquier persona con conocimiento avanzado o interés en Open Frameworks o Cinder verá los límites allí y comenzará a usarlos como kits de herramientas para el desarrollo de C++.

Un estudiante de arte no puede aprender Java o C++ para crear software, pero nosotros aprendemos esos idiomas para crear cosas que se vean, interactúen, se sientan y suenen interesantes. Y el procesamiento tiene mucho sentido como punto de partida para ese fin.La verdad es que cualquiera que solo está creando bocetos de un solo archivo exclusivamente en el lenguaje de Procesamiento sin implementación de OOP no es más principiante o novato en programación que un estudiante de Ingeniería de Software que no ha comprendido completamente el concepto de OOP.

1

El procesamiento hace que la creación de efectos visuales, animación (2D y 3D), interactividad, etc. sea fácil. El marco ya está más o menos configurado para crear dichos programas y muchos elementos innecesarios de Java son ocultos. Digo oculto porque el programador puede acceder al completo lenguaje Java si lo desea, y esa es la belleza de Processing. Permite a los principiantes crear programas sin la sobrecarga desordenada y, a medida que creces, puedes recurrir a conceptos más avanzados.

Para los otros encuestados que dicen que el procesamiento no está orientado a objetos, ¡por supuesto que sí! Está construido sobre Java después de todo. Como dije antes, depende del programador. Si desea crear programas más avanzados, puede hacerlo y aprovechar todo el poder de los objetos orientados.

+1

Desafortunadamente, agrega un nivel de inconsistencia al modelo conceptual del usuario en torno a los objetos y la programación. Por ejemplo, no puedes distinguir entre los métodos que llamas y los métodos que te llaman mágicamente (por ejemplo, setup(), draw()). Además, aunque parece que estás declarando variables globales y funciones independientes, en realidad estás declarando métodos de instancia y esas funciones tienen una variable 'this' disponible. Entonces hay confusión entre objetos vs no objetos. – David

+0

@David Esa es precisamente la razón por la que creo que es una mejor idea usar archivos java reales desde el principio en lugar de archivos pde. Es como enseñar a tocar el piano de forma incorrecta. Cuando más tarde recibas las clases de piano adecuadas, primero tendrás que desaprender lo que has aprendido de la manera incorrecta. – JuSchu

+0

@David Creo que setup() y draw() son los puntos de entrada elegidos arbitrariamente para Processing, así como public static void main es el punto de entrada comúnmente utilizado para una aplicación Java (a menos que use un framework que proporcione inversión de control , lo que Processing está haciendo realmente!). Solo se trata de conocer la API de con qué estás trabajando. Cuando lo piensas de esta manera, el punto particular del ciclo de configuración/dibujar se desmitifica y no importa mucho. –

Cuestiones relacionadas