Lenguaje de desarrollo de programación de Microsoft
C# se parece más a Java, aunque Microsoft guarda silencio sobre este tema. Esto también se espera. Creo que las empresas que utilizan Java informan de una mayor productividad en comparación con C++ debido al reciente éxito de C++. Código intermedio
Microsoft deja mucho margen a los usuarios para elegir cuándo compilar MSIL en código de máquina. Microsoft tiene cuidado al afirmar que MSIL no se interpreta sino que se compila en código de máquina. También comprende que muchos (si no la mayoría) de los programadores creen que los programas Java son inevitablemente más lentos que cualquier cosa escrita en C, un reconocimiento que dicta la decisión de construir programas basados en MSIL (en referencia a C#, Visual Basic, C++ administrado - un CLS-). versiones compatibles de C++ y otros lenguajes) superarán al código Java interpretado. Por supuesto, esto debe demostrarse con hechos. Debido a que C# y otros compiladores que generan MSIL aún no se han lanzado, la ubicuidad del compilador Java JIT hace que Java y C# sean relativamente idénticos en rendimiento. Declaraciones como C# es un lenguaje compilado y Java es un lenguaje interpretado son solo habilidades comerciales. El código intermedio de Java y MSIL son lenguajes ensambladores intermedios que se compilan en código de máquina en tiempo de ejecución u otros momentos.
Declaración en el espacio de nombres
Cuando creas un programa, creas una o más clases en el espacio de nombres. También en este espacio de nombres (fuera de las clases) puede declarar interfaces, tipos de enumeración y estructuras. Debe utilizar la palabra clave using para hacer referencia a contenido de otros espacios de nombres.
Tipos de datos básicos
C# tiene una gama más amplia de tipos de datos que C, C++ o Java. Estos tipos son bool, byte, ubyte, short, ushort, int, uint, long, ulong, float, double y decimal. Al igual que Java, todos estos tipos tienen un tamaño fijo. Al igual que C y C++, cada tipo de datos tiene dos tipos: firmado y sin firmar. Al igual que Java, las variables de caracteres contienen caracteres Unicode de 16 bits. Un nuevo tipo de datos en C# es el tipo de datos decimal. Para datos monetarios, puede almacenar 28 dígitos decimales de 10 dígitos.
Dos clases básicas
La clase denominada objeto es la clase base para todas las demás clases. Una clase denominada cadena también forma parte del lenguaje de clases de objetos. Ser parte del lenguaje significa que el compilador puede usarlo: cada vez que escribe una cadena entre comillas en su programa, el compilador crea un objeto de cadena para contenerla.
Paso de parámetros
Se pueden declarar métodos para aceptar un número variable de parámetros. El método de paso de parámetros predeterminado es pasar valores a tipos de datos primitivos. La palabra clave ref se puede utilizar para forzar que una variable se pase por referencia, lo que hace que la variable acepte un valor de retorno. La palabra clave out también puede declarar el proceso de transferencia de referencia. A diferencia de ref, indica que este parámetro no requiere un valor inicial.
Integración con COM
Quizás el mayor punto de venta del programa C# para Windows es su perfecta integración con COM, que es la tecnología de componentes Win32 de Microsoft. De hecho, con el tiempo será posible escribir clientes y servidores COM en cualquier idioma. Idioma de Internet. Las clases escritas en C# se pueden subclasificar en componentes COM existentes. La clase generada también se puede utilizar como componente COM, que luego se puede utilizar. Por ejemplo, JScript lo subclasifica para obtener un tercer componente COM. El resultado de este fenómeno es un entorno de ejecución donde los componentes son servicios web y pueden usarse en cualquier lugar. Idioma de Internet.
Subíndices de índice
Los índices son similares a las propiedades, excepto que en lugar de usar nombres de propiedades para referirse a los miembros de la clase, usan números entre corchetes para hacer referencia de forma anónima (al igual que los subíndices de una matriz). ).
Clase pública ListBox:Control
{
Cadena privada[] elemento;
Cadena pública this[int index]
{
Obtener
{
Devolver elemento [índice];
}
Configuración
{
elementos[index] =valor;
repintar();
}
}
}
Puede utilizar un looper para hacer referencia anónima a miembros de una matriz en una cadena, de la siguiente manera:
ListBoxListBox=...;
listBox[0]= hola;
Consola.
WriteLine(ListBox[0]);
Proxies y comentarios
Un objeto proxy contiene la información necesaria para acceder a métodos específicos de un objeto específico. Piense en ello como un indicador de método inteligente. Los objetos proxy se pueden mover a otra ubicación. Luego puede acceder a él para realizar llamadas con seguridad de tipos a métodos existentes. Los métodos de retroalimentación son un caso especial de agentes. La palabra clave event se utiliza en una declaración de método que se llamará como proxy cuando ocurra un evento. C# (pronunciado C sostenido) es un nuevo lenguaje de programación lanzado por Microsoft en junio pasado y su debut está previsto en el Microsoft Professional Developer Forum (PDC). C# es el último logro del investigador de Microsoft Anders Helsberg. C# se parece a esto. Incluyendo herencia única, interfaces, casi la misma sintaxis que Java, el proceso de compilar en código intermedio y luego ejecutarlo, etc. Pero C# es obviamente diferente de Java. Toma prestada una característica de Delphi y se integra directamente con COM (Modelo de objetos componentes). NET marco de red de Windows.
La definición del lenguaje C# de Microsoft se hereda principalmente de C y C++, y muchos elementos del lenguaje también reflejan esto. C# es más amplio que Java en términos de opciones opcionales heredadas de C++ (por ejemplo, estructuras) y agrega nuevas características propias (por ejemplo, definiciones de versión del código fuente). Sin embargo, aplastar Java es demasiado inmaduro. C# necesita evolucionar hacia un lenguaje que los desarrolladores puedan aceptar y adoptar.
La palabra C++ suele pronunciarse como "C plus" entre los programadores de China continental, mientras que entre los programadores occidentales suele pronunciarse como "C plus plus". Es un lenguaje de programación informática muy utilizado. C++ es un lenguaje de programación de propósito general que verifica tipos de datos estáticos y admite múltiples paradigmas de programación. Admite muchos estilos de programación, como programación, abstracción de datos, programación orientada a objetos y programación genérica.
El Dr. Benjani Stroustrup (w:en:Bijani Stroustrup) de Bell Labs inventó e implementó C++ en la década de 1980 (originalmente este lenguaje se llamaba "con clases" C"). C++ apareció originalmente como una versión mejorada del lenguaje C. Desde la incorporación de clases al lenguaje C, se han seguido agregando nuevas funciones. Poco a poco se fueron añadiendo al estándar funciones virtuales, sobrecarga de operadores, herencia múltiple, plantillas, excepciones, RTTI y espacios de nombres. En 1998, la Organización Internacional de Normalización (ISO) publicó el estándar internacional ISO/IEC 14882-1998 para el lenguaje de programación C++. Desafortunadamente, debido a la complejidad del lenguaje C++ y su larga evolución, hasta ahora (2004) sólo unos pocos compiladores son totalmente compatibles con este estándar.
Además, en lo que respecta al aprendizaje de C++, se puede considerar un lenguaje independiente. No depende del lenguaje C. Podemos aprender C ++ directamente sin aprender el lenguaje C en absoluto. Según el libro "Thinking in C++", la diferencia de eficiencia entre C++ y C suele ser de más o menos 5%. Entonces, algunas personas piensan que C ++ puede reemplazar completamente el lenguaje C en la mayoría de los casos.
El desarrollo del lenguaje C++ se puede dividir aproximadamente en tres etapas: la primera etapa va desde la década de 1980 hasta 1995. En esta etapa, el lenguaje C ++ es básicamente un lenguaje tradicional orientado a objetos. Su eficiencia es cercana a la del lenguaje C y ocupa una parte considerable de los lenguajes de desarrollo utilizados en la industria. La segunda etapa es de 1995 a 2000. En esta etapa, debido al surgimiento de la Biblioteca de plantillas estándar (STL) y más tarde la biblioteca Boost, la programación genérica ocupaba una proporción cada vez mayor en C++. Por supuesto, al mismo tiempo, debido a la aparición de Java, C # y otros lenguajes y la caída a gran escala de los precios del hardware, C ++ se vio afectado hasta cierto punto en la tercera etapa, a partir de 2000; Debido a la producción de bibliotecas representadas por Loki, MPL y otras bibliotecas. Con el surgimiento de la programación y la metaprogramación de plantillas, C ++ ha alcanzado un nuevo pico en la historia del desarrollo. La aparición de estas nuevas tecnologías y su integración con tecnologías originales han convertido a C++ en el miembro más complejo de los principales lenguajes de programación. Nada en este mundo toca más el corazón de los programadores que las herramientas de programación. VC, VB, DELPHI, JAVA… Estos nombres deslumbrantes no solo ocupan la vida de los programadores, sino que también parecen haberse convertido en una especie de creencia. Sin embargo, a medida que avanzaba el nuevo siglo, estas creencias volvieron a enfrentar grandes desafíos. Microsoft, el león que estaba cansado y molesto tanto por los jueces como por los piratas informáticos, prometió mantener la corona en su cabeza e hizo todo lo posible para desarrollar habilidades especiales. Estrategia NETA. como lenguaje de desarrollo central. NET, C# surgió naturalmente. Los programadores tienen que tomar una decisión dolorosa: ¿a quién seguir? Para saberlo, tuvimos que hacer una comparación y una predicción. Como programador senior, me atrevo a decir que su poder es asombroso.
Si dejamos de lado todos los factores no técnicos, C# es sin duda el mejor lenguaje de programación jamás creado en este planeta. Integra casi todos los últimos resultados del desarrollo de software y la investigación en ingeniería de software. Orientación a objetos, seguridad de tipos, tecnología de componentes, gestión automática de memoria, manejo de excepciones multiplataforma, control de versiones, gestión de seguridad de código... estas características no se pueden encontrar en otro idioma. Aunque, como mucha gente ha notado, cuando enumero las características anteriores, la gente siempre piensa en JAVA, pero C# va mucho más allá.
Pero la realidad es que factores no técnicos muchas veces determinan el futuro de un producto, especialmente en la historia del software informático, productos con excelente tecnología, como OS/2, Mac OS, UNIX, etc. Todos fueron derrotados por la hermosa cara de Windows. Esta vez, el papel de Microsoft parece haber cambiado de un revolucionario con las manos desnudas a un viejo terrateniente opresivo. Si el clima realmente va a cambiar, ¿C# no daría a luz al niño equivocado? Quizás no sea tan malo. Después de todo, un camello flaco es más grande que un caballo y C# se ha enviado a la organización de estandarización. Una vez que se convierta en un estándar internacional, es difícil decir qué Tickle Warrior (o el propio Microsoft) se adaptará a plataformas como Linux. En ese caso, JAVA estaría en problemas. Debido a que los usuarios de JAVA son principalmente desarrolladores de servicios de red y software de dispositivos integrados, el software de dispositivos integrados no es donde C# entra en juego. En términos de servicios de red, las soluciones de compilación justo a tiempo de C# y almacenamiento en caché de código local tienen ventajas absolutas de rendimiento sobre la máquina virtual JAVA. Además, una vez que C# se convierta en un estándar público como C++, los desarrolladores de software no sólo podrán ahorrarse las tarifas de licencia de JAVA, sino que tampoco tendrán que preocuparse de convertirse en esclavos de Microsoft, y aquellos que se oponen a Microsoft y defienden la independencia de los fabricantes tal vez no tengan ninguna objeción. Esto puede ser exactamente lo que Microsoft está buscando.
Si se compara la competencia entre C# y JAVA en el campo de los servicios de red con la competencia por la supremacía aérea en el futuro, entonces la competencia entre C# y las herramientas tradicionales de desarrollo rápido de uso general, como VB y DELPHI, será una competición de ida y vuelta. Los peores programadores que existen probablemente sean programadores de VB. En Microsoft, VB es como Clinton después de dejar el cargo. No sólo perdió toda la gloria, sino que también se vio acosado por el caos. Piénselo, los proyectos escritos en VB6 deben convertirse. El código basado en .NET se puede convertir a VB7 usando una herramienta de conversión y es casi irreconocible. Porque VB7 sigue la Especificación de lenguaje común (CLS). NET, agrega casi todas las funciones que solo se pueden usar en C++, JAVA y otros lenguajes, pero la sintaxis es compatible con la versión original. Si es la primera vez que ve el código convertido de su antiguo proyecto VB6 en VB7, ¡tenga cuidado con su corazón! Así que trabaja duro y no me digas que te jubilas. La situación en Delfos no es mucho mejor. La especialidad original es que puede iniciar aplicaciones rápidamente y bien. Ahora, si miras la última Beta 1, te resultará muy familiar. Hay tantas listas de propiedades y componentes... ¿Quién te hace tan pobre que ni siquiera el diseñador jefe puede mantenerte?
De hecho, el verdadero señor entre los lenguajes de programación ha sido C++ durante muchos años. Todos los sistemas operativos y la mayoría del software comercial utilizan C++ como lenguaje de desarrollo principal. La gran mayoría de los programadores de JAVA también son fanáticos de C++, y el éxito de PHP también se debe a una sintaxis similar a la de C++. En los campos de los sistemas operativos, controladores de dispositivos, videojuegos, etc., C++ seguirá ocupando una posición dominante durante mucho tiempo, y en el desarrollo de la mayor cantidad de software de aplicaciones, es probable que C# reemplace a C++. En primer lugar, C#, al igual que JAVA, simplemente copia parte de la sintaxis de C++, por lo que es fácil de aprender para una gran cantidad de programadores de C++. Además, es más sencillo que C++ para principiantes. En segundo lugar, Windows es actualmente una plataforma monopolística y no se puede ignorar la voz de Microsoft a la hora de desarrollar aplicaciones para Windows. Lo más importante es que, en comparación con C++, el uso de C# para desarrollar software de aplicación puede acortar en gran medida el ciclo de desarrollo y, al mismo tiempo, se puede utilizar el código C++ original excepto el código de la interfaz de usuario.
Sin embargo, C# también tiene debilidades. Primero, en algunas plataformas Windows más antiguas, los programas C# aún no se pueden ejecutar, como lo requieren los programas C#. NET runtime como base y. NET se distribuye como parte del Windows actual (XP y posterior), y los usuarios de Windows Me y Windows 2000 sólo pueden instalarlo y utilizarlo en forma de paquete de servicio. En segundo lugar, sólo hay unas pocas opciones de componentes o bibliotecas que se pueden utilizar con C#, como . NET runtime, no hay bibliotecas de software de terceros disponibles. Esto requiere un proceso y el apoyo de los desarrolladores de software también es importante. En tercer lugar, algunos de los factores de éxito de JAVA son promocionados por el campo anti-Microsoft. Aunque "escribir una vez, ejecutar en cualquier lugar" es solo un eslogan, después de todo es una tecnología madura. En la actualidad, el único defensor de C# es Microsoft, que tiene mala reputación y sólo puede ejecutarse en Windows. De hecho, estos dos lenguajes no son insustituibles. Desde un punto de vista racional, para los desarrolladores de software, la herramienta más familiar es la mejor. Especialmente para los usuarios de C++, C# no aporta nada nuevo porque. NET runtime también se puede utilizar en C++, no hay ninguna razón absoluta para cambiarlo.
En resumen, personalmente creo que C# aumentará inevitablemente en los últimos años y se convertirá en el protagonista de la plataforma Windows, mientras que JAVA se convertirá en el actor dominante en UNIX, Linux y otras plataformas, y C++ continuará. para dominar el software del sistema. Hacer grandes esfuerzos en el campo. Curiosamente, la sintaxis de estos lenguajes es muy similar, ya que tanto JAVA como C# evolucionaron a partir de C++. Sin duda, otras herramientas de desarrollo continuarán su viaje durante mucho tiempo, pero en términos de participación de mercado, inevitablemente se verán afectadas.