Cita de: "JuanK"4- indexersSegún veo, indexer es lo que ahora se llama iterator.
4- indexers
Obviamente pueden generar código, puesto que necesitan un archivo intermedio con un bytecode para la máquina virtual... Perl lo hace, pero lo pasa directamente al intérprete y al optimizador de código
• A .NET process hosts one to many application domains. Each AppDomain is able to host anynumber of related .NET assemblies and may be independently loaded and unloaded by theCLR (or programmatically via the System.AppDomain type).• A given AppDomain consists of one to many contexts. Using a context, the CLR is able to placea “special needs” object into a logical container, to ensure that its runtime requirements arehonored.
YA no supo que mas agregar...esa es mi respuesta para JunaK
Creo que tus palabras solamente se pueden medir en la experiencia que tienes usando esos lenguajes ( y por lo visto tu experiencia no es muy vasta ni en C# ni en Perl ).
1.variables léxicas, puesto que no es débilmente tipificado, no puede por lo tanto generar dynamic closures, C# no tiene la habilidad de modificar su tabla de símbolos en tiempo de ejecución, no tienes funciones de alto orden,
no puedes tener funciones que pre-fabriquen otras funciones ( por elementos citados atrás ).
Soporte embebido para documentación en XML? who the fuck cares about that? La gente de Perl es feliz con POD, y es demasiado rápido de analizar y transformar.
C# no tiene la cantidad de frameworks que contiene Perl para facilitar MUCHAS tareas (web,administración,GUI). C# es una moda, la cual como todas las modas, establecerá su nicho en su momento, y listo, esto sucede SIEMPRE.
Y para culminar con mi comentario, C# NO ES UN LENGUAJE, así como tampoco Java lo es.
C# y Java son ESPECIFICACIONES
; de qué? de un lenguaje, de una máquina virtual, .
Qué es .Net, qué es .Mono? son IMPLEMENTACIONES de dicha especificación.
Qué es Sun JDK, Qué es IBM JDK, Qué es Blackdown JDK? Son implementaciones de la especificación de Java.
Espero te quede mas en claro el punto de comparación ahora...
---Porque hicieron PERL .NET?
SDK es: Software Development Kit, es decir un conjunto de herramientas que sirven para desarrollar, sino tienes el JDK o el .NET FrameWork SDK lo unico que no puedes hacer es desarrollar, pero los programas pueden correr noemalmente asi que no son las especificaciones de java.. ni nada parecido.
Al menos para mi gusto ser fuertemente tipificado es una gran ventaja con respecto a no serlo.
Funciones de Alto Orden: Una de las principales características de los lenguajes funcionales es la facilidad que presenta para tratar funciones como objetos, lo que permite aceptarlas como parámetros de otras funciones, retornarlas como resultado y permitir que otras estructuras de datos las contengan dentro de sus componentes.Desde luego que C# no tiene los mismo tal cual , pero tampoco lo necesita:delegados (delegates). si entendi bien a que se refieren con Funciones de alto orden:El delegado que apunta a la funcion, puede ser enviado como parametro a cualquier otro metodo, los metodos tambien pueden devolver delegados.
respecto a las variables lexicas... si sabes algo de POO y de .net te daras cuenta que no necesitan dicha habilidad, para eso existe POO y en varios lenguajes hay modificadores de acceso, en el caso de C# puedes usar:publicprivateinternalstaticprotectedy dentro de las metodos miembro el contexto de una variable se puede limitar a cualquier bloque de codigo dentro del mismo bien sea para todo el bloque, para solo un bloque condicional etc. Tambien se peuden crear atributos static para proponer su uso de manera global en el ensamblado o los ensamblados... usando la palabra reservada using
no puedes tener funciones que pre-fabriquen otras funciones ( por elementos citados atrás ).Si se peude, aunque en tu vasto conocimiento no lo sepas. Por supuesto que se pueden generar ensamblados dinamicos en memoria usando .NET.FYI-Refleccion de tipos-Module Builder
No se según tu que gran ventaja tiene usar algo como POD contra usar un standart global como XML.
jajajaja!!! ah no? que profundo conocimiento de C# y de .NET tienes verdad... sabes que es el .NET fram,ework? parece que no, pero tlo que has mencionado esta muy ampliamente soportado, no se de donde sacas que .net no... eso es ridiculo y es una afirmacion ilogica.
ahh no? entonces que son? Estas mal, no hablare por java. Pero c# es un leguaje.
; de qué? de un lenguaje, de una máquina virtualEl lenguaje de la 'maquina virtual' de .NET si es que se le puede llamar maquina virtual porque no lo es realmente , al meno no desde el mismo punto de vista de java, es el MSCIL, al compilar codigo escrito en lenguaje C# el compilador genera codigo CIL que es el que en primera instancia es accedido por el JIT.
.NET y Mono son implemenciones de CIL segun el estandart
CLI SpecificationEs lo mismo que decir que C++ no es un lenguaje sino una especificacion ANSI...Ecma-334 : C# Especification
No, no son la sespecificaciones del lenguaje, son especificaciones del J2EEJ2MEJ2SEtodos SDKs...SDK es: Software Development Kit, es decir un conjunto de herramientas que sirven para desarrollar, sino tienes el JDK o el .NET FrameWork SDK lo unico que no puedes hacer es desarrollar, pero los programas pueden correr noemalmente asi que no son las especificaciones de java.. ni nada parecido.Que son el conjunto de Frameworks y/o librerias que son utilizables por el lengueja de manera nativa,pero nada tiene que ver con el lenguaje.
No me quedo claro nada mas de lo que ya habia dicho en mi post anterior.Adicionalmente me quedo claro:-que hablas demasiado-que sabes tanto de .NET como yo de PERL ( incluso menos)-Que eres un pelion buscapleitos, nadie estaba peliando hasta que llegaste con actitud provocadora... habia necesidad de eso...?-Que me dejo provocar muy facilmente.
Y nuevamente eso qué? Java también cuenta con Reflection y características básicas de introspección de código, pero eso qué tiene que ver con una función que fabrique otra funcion? nuevamente C# y Java no son lenguajes que tomen características funcionales, los bloques de código NO son objetos. Tu contador sigue incrementando.
Y todo eso que dijiste QUE TIENE QUE VER con una variable léxica? me estás hablando de accesibilidad... Pero ok, no te preocupes, tu contador de palabras sigue incrementando, pero el significado que le das a las respuestas disminuye.Por cierto... using define "Namespaces", eso explica tu comentario de "crear atributos static para proponer su uso..."?, no necesitas decir TANTA palabrería si realmente conocieras lo que estás diciendo.
Tampoco con el afán de ofender,
Claro que es una máquina virtual, formalmente es TODA una máquina virtual, ya comentaste muchas características y aun no te convences. No hablemos de JIT, optimización y generación de código que veo perfectamente que no es algo que domines.
Por otro lado es cierto que C# no es tan viejo como otros lenguajes, pero su creación es parte de toda la evolución que hay en los ultimos tiempos en los lenguajes, y su mayor necesidad en brindar las mejores soluciones a los negocios.
Con gusto podemos debatir el tema en algo menos "tardado", te parece bien IRC?Algún(a) canal/red de preferencia?Es mas, escribe un cliente de IRC en .Net para que tengas mas ventaja.... Saludos,
Es fácil encontrar a una persona que sea fanática de un lenguaje, y que diga que su lenguaje es mejor que los 2000 o 3000 existentes, porque es lo UNICO que usa casi a diario... no se le puede culpar, pero es bueno hacerle saber que hay mas que solo eso.
Yo pasé por alguna de ellas y muchas veces sales escaldado. O por que tu no sabes o porque el otro no sabe que no sabe.
C# definitivo
Cita de: "Bicholey" C# definitivo Me parece que sí.
No es la mejor idea elegir el lenguaje más completo, sino al que se adapte más a tus necesidades Además, no es solo el lenguaje, sino el programador
Que viva Perl!Podes correrlo en Apache o .Net, es OO, FREE, grande y potente como el solo, al con C# y PHP no hacen falta, el primer lenguaje postmoderno lo deja atras.