ID 10660 - Tema: 114 - Java Script - Objetos
-
- PreparaTIC26
- Mensajes: 697
- Registrado: 18 Abr 2011, 16:00
- Ubicación: Madrid 28002
- Agradecido: 0
- Agradecimiento recibido: 0
ID 10660 - Tema: 114 - Java Script - Objetos
De esta pregunta:
7) Indique la afirmación incorrecta: [MAL]
Tema: 114. Id Pregunta: 10660.
a) JavaScript es orientado a objetos.
b) JavaScript no puede ejecutarse en el lado del servidor.
c) Para interactuar con una página web, JavaScript utiliza una implementación de DOM (Document Object Model).
d) La tecnología AJAX utiliza JavaScript de forma asíncrona.
Según tengo en mis apuntes y confrontando con colegas, JavaScript es BASADO en objetos, pero no orientado, porque no cumple las características de OO.
¿Cómo lo veis?
7) Indique la afirmación incorrecta: [MAL]
Tema: 114. Id Pregunta: 10660.
a) JavaScript es orientado a objetos.
b) JavaScript no puede ejecutarse en el lado del servidor.
c) Para interactuar con una página web, JavaScript utiliza una implementación de DOM (Document Object Model).
d) La tecnología AJAX utiliza JavaScript de forma asíncrona.
Según tengo en mis apuntes y confrontando con colegas, JavaScript es BASADO en objetos, pero no orientado, porque no cumple las características de OO.
¿Cómo lo veis?
Imposible es sólo una apreciación, como tantas otras.
- Miguelinho
- Usuario registrado
- Mensajes: 787
- Registrado: 16 Sep 2013, 00:28
- Agradecido: 0
- Agradecimiento recibido: 0
Re: Java Script - Objetos
Según tengo entendido JavaScript sí soporta la programación orientada a objetos. Es, pese a ello, un poco "sui generis":
1.- No hay palabras reservadas para la definición de clases y métodos, pero se pueden definir de una forma que yo calificaría como "torticiera".
2.- La herencia se hace a través de prototipos.
No te puedo indicar el libro concreto, pues no lo recuerdo, pero hace tiempo consulté un libro donde se afirmaba explícitamente que JavaScript era Orientado a Objetos. No obstante, me creería que hubiese autores que hiciesen distinciones como la que mencionas.
AÑADIDO: Consulta esta web, viene con un ejemplo.
Enlace: http://viralpatel.net/blogs/object-orie ... avascript/
Personalmente, creo que sí se puede considerar POO, pero es muy chapucero, al menos, para los que venimos de otros lenguajes con más palabras reservadas.
Un saludo,
Miguel
[EDIT para el AÑADIDO]
1.- No hay palabras reservadas para la definición de clases y métodos, pero se pueden definir de una forma que yo calificaría como "torticiera".
2.- La herencia se hace a través de prototipos.
No te puedo indicar el libro concreto, pues no lo recuerdo, pero hace tiempo consulté un libro donde se afirmaba explícitamente que JavaScript era Orientado a Objetos. No obstante, me creería que hubiese autores que hiciesen distinciones como la que mencionas.
AÑADIDO: Consulta esta web, viene con un ejemplo.
Enlace: http://viralpatel.net/blogs/object-orie ... avascript/
Personalmente, creo que sí se puede considerar POO, pero es muy chapucero, al menos, para los que venimos de otros lenguajes con más palabras reservadas.
Un saludo,
Miguel
[EDIT para el AÑADIDO]
- NachoMarAr
- PreparaTIC25
- Mensajes: 115
- Registrado: 21 May 2015, 14:48
- Agradecido: 0
- Agradecimiento recibido: 0
Re: Java Script - Objetos
Yo coincido con Miguelinho. Además, en este caso hay una respuesta falsa muy clara como para pensar que puede ser una pregunta trampa donde el truco esté en la distinción que mencionas
-
- PreparaTIC26
- Mensajes: 697
- Registrado: 18 Abr 2011, 16:00
- Ubicación: Madrid 28002
- Agradecido: 0
- Agradecimiento recibido: 0
Re: ID 10660 - Tema: 114 - Java Script - Objetos
La verdad es que no se me da bien lo de Java y la errónea que dices que es clara no la vi porque, entre otras cosas, en cuanto vi la A como falsa no perdí tiempo en verificar lo demás.
Para que un paradigma, lenguaje, etc. se considere como ORIENTADO a objetos debe tener ciertas características fundamentales (encapsulamiento, herencia, polimorfismo...). Según tengo entendido el JavaScript no admite herencia, por ejemplo.
Para que un paradigma, lenguaje, etc. se considere como ORIENTADO a objetos debe tener ciertas características fundamentales (encapsulamiento, herencia, polimorfismo...). Según tengo entendido el JavaScript no admite herencia, por ejemplo.
Imposible es sólo una apreciación, como tantas otras.
- NachoMarAr
- PreparaTIC25
- Mensajes: 115
- Registrado: 21 May 2015, 14:48
- Agradecido: 0
- Agradecimiento recibido: 0
Re: ID 10660 - Tema: 114 - Java Script - Objetos
Como apuntó Miguelinho, la herencia en Javascript se soporta a través de "prototype". Bajo mi punto de vista, Javascript sí es orientado a objetos, pero no de la forma a la que estamos acostumbrados con C++, Java, etc. En estos lenguajes defines clases, y luego las instancias, mientras que en Javascript se suele heredar (mediante prototype) de instancias de objetos ya existentes. Es una filosofía bte diferente, pero orientada a objetos. Y al contrario de lo que opina Miguelinho, yo no la veo "torticera", sino diferente, con sus ventajas e inconvenientesphdezv escribió:La verdad es que no se me da bien lo de Java y la errónea que dices que es clara no la vi porque, entre otras cosas, en cuanto vi la A como falsa no perdí tiempo en verificar lo demás.
Para que un paradigma, lenguaje, etc. se considere como ORIENTADO a objetos debe tener ciertas características fundamentales (encapsulamiento, herencia, polimorfismo...). Según tengo entendido el JavaScript no admite herencia, por ejemplo.
- Miguelinho
- Usuario registrado
- Mensajes: 787
- Registrado: 16 Sep 2013, 00:28
- Agradecido: 0
- Agradecimiento recibido: 0
Re: ID 10660 - Tema: 114 - Java Script - Objetos
Sí, el calificativo que he brindado a la POO de JavaScript es sólo una opinión personal. Posiblemente, se deba a que he usado JavaScript en un par de webs y no le he sacado todo su potencial. En cambio, estoy más versado, sin ser tampoco un erudito, en Java, C++ y Objective-C.
Una última observación. JavaScript, como C++ o Python, es multiparadigma. No hay porqué sacar partido a la POO y al final, se puede usar un estilo estructurado. Además, los paradigmas de programación no son autoexcluyentes. He leído, por ejemplo, que en Java 8 han introducido cálculo lambda, que es una funcionalidad del paradigma funcional.
¡Y ésa es otra! Los lenguajes de programación están en constante evolución. Aparecen nuevos lenguajes (Dart de Google, Swift de Apple, Hack de Facebook) y los existentes evolucionan.
Un saludo,
Miguel
Una última observación. JavaScript, como C++ o Python, es multiparadigma. No hay porqué sacar partido a la POO y al final, se puede usar un estilo estructurado. Además, los paradigmas de programación no son autoexcluyentes. He leído, por ejemplo, que en Java 8 han introducido cálculo lambda, que es una funcionalidad del paradigma funcional.
¡Y ésa es otra! Los lenguajes de programación están en constante evolución. Aparecen nuevos lenguajes (Dart de Google, Swift de Apple, Hack de Facebook) y los existentes evolucionan.
Un saludo,
Miguel
- NachoMarAr
- PreparaTIC25
- Mensajes: 115
- Registrado: 21 May 2015, 14:48
- Agradecido: 0
- Agradecimiento recibido: 0
Re: ID 10660 - Tema: 114 - Java Script - Objetos
La b. Como ejemplo de javascript en el lado del servidor, Node.js
Re: ID 10660 - Tema: 114 - Java Script - Objetos
Última edición por Rchins el 20 Nov 2017, 13:34, editado 1 vez en total.
- Miguelinho
- Usuario registrado
- Mensajes: 787
- Registrado: 16 Sep 2013, 00:28
- Agradecido: 0
- Agradecimiento recibido: 0
Re: ID 10660 - Tema: 114 - Java Script - Objetos
No estoy de acuerdo, Rchins. Insisto en que los lenguajes de programación evolucionan. Depende como se redactase la pregunta, COBOL podría ser una cosa u otra. Al final, todo son matices.
La (b) tiene un matiz que la hace claramente descartable:
b) JavaScript no puede ejecutarse en el lado del servidor.
El "no puede" es fortísimo. Con un ejemplo, como el puesto por NachoMarAr, se viene abajo. Con estos errores, se pierde 1'5 puntos. 0'5 que resta y 1 punto que no sumamos.
Todas las preguntas se deben reflexionar. Cada matiz, cambia el sentido.
La (b) tiene un matiz que la hace claramente descartable:
b) JavaScript no puede ejecutarse en el lado del servidor.
El "no puede" es fortísimo. Con un ejemplo, como el puesto por NachoMarAr, se viene abajo. Con estos errores, se pierde 1'5 puntos. 0'5 que resta y 1 punto que no sumamos.
Todas las preguntas se deben reflexionar. Cada matiz, cambia el sentido.
Re: ID 10660 - Tema: 114 - Java Script - Objetos
Última edición por Rchins el 20 Nov 2017, 13:34, editado 1 vez en total.
-
- PreparaTIC26
- Mensajes: 697
- Registrado: 18 Abr 2011, 16:00
- Ubicación: Madrid 28002
- Agradecido: 0
- Agradecimiento recibido: 0
Re: ID 10660 - Tema: 114 - Java Script - Objetos
Gracias a todos por sus aclaraciones y comentarios.
Desde la experiencia con el paradigma OO pero desde la nula experiencia con JavaScript, y de lo que he leído sobre él:
1- Ciertamente los lenguajes evolucionan, pero los paradigmas establecidos no se mueven tanto, tienden a quedarse más quietos. El paradigma OO tiene características y reglas bien establecidas, como lo de la herencia. Puedes "simularla", como el caso de los prototypes, pero no se consideraría herencia propiamente dicha.
2. En el propio tema ASTIC p. 17, como característica básica de JavaScript dice: "Los scripts se ejecutan en el navegador web, no en el servidor".
Habéis comentado sobre Node.js y lo he buscado, encontrando esto en Wikipedia:
Y en la wiki en inglés dice:
Perdonad el lío, pero quiero que me quede claro por cualquier pregunta similar que pueda salir en los exámenes.
Desde la experiencia con el paradigma OO pero desde la nula experiencia con JavaScript, y de lo que he leído sobre él:
1- Ciertamente los lenguajes evolucionan, pero los paradigmas establecidos no se mueven tanto, tienden a quedarse más quietos. El paradigma OO tiene características y reglas bien establecidas, como lo de la herencia. Puedes "simularla", como el caso de los prototypes, pero no se consideraría herencia propiamente dicha.
2. En el propio tema ASTIC p. 17, como característica básica de JavaScript dice: "Los scripts se ejecutan en el navegador web, no en el servidor".
Habéis comentado sobre Node.js y lo he buscado, encontrando esto en Wikipedia:
ECMAScript se basó fundamentalmente en JavaScript pero no es lo mismo.Node.js es un entorno en tiempo de ejecución multiplataforma, de código abierto, para la capa del servidor (pero no limitándose a ello) basado en el lenguaje de programación ECMAScript.
Y en la wiki en inglés dice:
De todo lo anterior interpreto que lo que se ejecuta en el servidor no es directamente JavaScript sino "dentro de" Node.js. ¿Podría ser?Node.js is an open-source, cross-platform runtime environment for developing server-side Web applications. Node.js is not a JavaScript framework,[3] but its applications are written in JavaScript and can be run within the Node.js runtime on a wide variety of platforms.
Perdonad el lío, pero quiero que me quede claro por cualquier pregunta similar que pueda salir en los exámenes.
Imposible es sólo una apreciación, como tantas otras.
- NachoMarAr
- PreparaTIC25
- Mensajes: 115
- Registrado: 21 May 2015, 14:48
- Agradecido: 0
- Agradecimiento recibido: 0
Re: ID 10660 - Tema: 114 - Java Script - Objetos
Efectivamente, ECMAScript es un estandar que se creó a partir de JavaScript y no son lo mismo, pero Node.js no está basado en ECMAScript, sino en JavaScript. De hecho, está basado en el Chrome's V8 JavaScript engine.phdezv escribió:Gracias a todos por sus aclaraciones y comentarios.
ECMAScript se basó fundamentalmente en JavaScript pero no es lo mismo.Node.js es un entorno en tiempo de ejecución multiplataforma, de código abierto, para la capa del servidor (pero no limitándose a ello) basado en el lenguaje de programación ECMAScript.
Efectivamente, las aplicaciones Javascript se ejecutarían en Node.js, del mismo modo que las aplicaciones Java se ejecutan en la JVM (me refiero conceptualmente, técnicamente no se parecen en nada). Y, básicamente, el objetivo de Node.js es poder desarrollar con Javascript aplicaciones web, de ahí que la respuesta b sea cierta. El tema de ASTIC en este punto se ha quedado un poco obsoleto, si bien es cierto que el principal uso de Javascript (y cada día más extendido) sigue siendo en el cliente.phdezv escribió: Y en la wiki en inglés dice:De todo lo anterior interpreto que lo que se ejecuta en el servidor no es directamente JavaScript sino "dentro de" Node.js. ¿Podría ser?Node.js is an open-source, cross-platform runtime environment for developing server-side Web applications. Node.js is not a JavaScript framework,[3] but its applications are written in JavaScript and can be run within the Node.js runtime on a wide variety of platforms.
Perdonad el lío, pero quiero que me quede claro por cualquier pregunta similar que pueda salir en los exámenes.
- Miguelinho
- Usuario registrado
- Mensajes: 787
- Registrado: 16 Sep 2013, 00:28
- Agradecido: 0
- Agradecimiento recibido: 0
Re: ID 10660 - Tema: 114 - Java Script - Objetos
Diría que no existe una guía exacta o un estándar que precise lo que es y deja de ser la herencia. Cada lenguaje, al final, lo hace un poco a su manera. Objective-C es orientado a objetos y desde mi perspectiva, no tiene nada que ver con Java, por ejemplo.phdezv escribió: 1- Ciertamente los lenguajes evolucionan, pero los paradigmas establecidos no se mueven tanto, tienden a quedarse más quietos. El paradigma OO tiene características y reglas bien establecidas, como lo de la herencia. Puedes "simularla", como el caso de los prototypes, pero no se consideraría herencia propiamente dicha.
Según la Wikipedia, JavaScript es orientado a objetos (si bien, precisan que está basado en prototipos)
Paradigm: Multi-paradigm: scripting, object-oriented (prototype-based), imperative, functional
Fuente: https://en.wikipedia.org/wiki/JavaScript
Haces bien en querer disipar tus dudas, pero en este tema, como en otros del mundillo de la informática, la terminología no es exacta y al final, dependerá del criterio del Tribunal.