Comentarios sobre MQL5 - página 7

 
Renat Fatkhullin:

La descripción de las reglas de un estilista no puede resumirse en unas pocas líneas de ficción.

Formatea el camino que hemos trazado.

¡Hola!

El hecho de que el estilista formatee sólo la forma en que se ha colocado y nada más es un poco extraño. Déjeme explicarle.

MT es una plataforma Windows. La principal herramienta de desarrollo para Windows es MSVC, mientras que MT está escrito en MFC. Esta biblioteca adopta la variante de Kernighan y Ritchie del estándar de sangría y formato. Así que, para una persona que ha pasado toda su vida en MSVC (y son la mayoría en Windows) ver 3 espacios como tabulador y 2 espacios extra antes de "{" y además sin espacio entre rectas (si, para...) y siguientes paréntesis es un poco ridículo y perturba la lectura del código. Entiendo que han adoptado este formato como norma corporativa, pero no se aplica a otros desarrolladores.

Así que sugiero que se introduzcan algunos ajustes del estilista, todo el mundo dirá un gran agradecimiento.

 
SeriousRacoon:

¡Hola!

El hecho de que el estilizador sólo formatee de la manera que tú quieras y no de otra manera es un poco extraño. Déjeme explicarle.

MT es una plataforma Windows. La principal herramienta de desarrollo para Windows es MSVC, la biblioteca MT está escrita en MFC. Esta biblioteca adopta la variante de Kernighan y Ritchie del estándar de sangría y formato. Así, para una persona que ha pasado toda su vida en MSVC (y son la mayoría en Windows) ver 3 espacios como tabulador y 2 espacios extra antes de "{" y también ausencia de espacio entre propiedades (if, for...) y corchete que sigue es un poco ridículo y perturba la lectura del código. Entiendo que han adoptado este formato como norma corporativa, pero no se aplica a otros desarrolladores.

Así que sugiero que se introduzcan algunos ajustes del estilista, todo el mundo dirá un gran agradecimiento.

Una pequeña corrección, el estilo de código de Microsoft no es una norma de K&R. El estándar K&R es básicamente una diferencia entre corchetes, está diseñado para que quepan el mayor número de líneas posible en la pantalla del PDP-11 y otras pantallas alfanuméricas - 80 caracteres * 25 líneas. Por cierto, aquí está el enlace al libro, tal vez alguien lo encuentre útil http://rabus.ru/KernighanRitchie_C/index.html#content

/* подсчет строк, слов и символов */
main()
{
    int с, nl, nw, nc, state;
    state = OUT;
    nl = nw = nc = 0;
    while ((с = getchar()) != EOF) {
        ++nc;
        if (c == '\n')
            ++nl;
        if (c == ' ' || c == '\n' || c == '\t')
            state = OUT;
        else if (state == OUT) {
            state = IN;
            ++nw;
        }
    }
    printf(“%d %d %d\n”, nl, nw, nc);
}

Por lo demás estoy de acuerdo y ya se ha escrito unas 100500 veces. Personalmente, me llevo todos los textos de terceros MQL al estudio y los reformulo allí.

 
Alexey Volchanskiy:

Ligera corrección, el estilo de código de Microsoft no es una norma K&R. La norma K&R es en su mayor parte una diferencia de corchetes, está diseñada para que quepan tantas líneas como sea posible en la pantalla del PDP-11 y otras pantallas alfanuméricas - 80 caracteres * 25 líneas. Por cierto, aquí está el enlace al libro, tal vez alguien lo encuentre útil http://rabus.ru/KernighanRitchie_C/index.html#content

Por lo demás estoy de acuerdo y ya se ha escrito unas 100500 veces. Personalmente, me llevo todos los textos de terceros MQL al estudio y los reformulo allí.

Sí, la diferencia es con el paréntesis de apertura, por lo demás es similar, por eso lo llamé "variante".

Sería más fácil si el entorno de МТ tuviera Herramientas de Usuario, para poder adjuntar embellecedores de terceros, pero no es posible. Opcionalmente se puede utilizar un editor de terceros con soporte de salida stdout de las herramientas de usuario (Editplus es un clásico, pero hay soluciones más interesantes), pero es sólo una muleta extra. Uso Unscrutify configurado en UniversalIndentGUI.

 
 
urusov:

Por favor:

https://www.mql5.com/ru/forum/35326

https://www.mql5.com/ru/forum/1111/

¿Nombre un lenguaje de uso común en el que no pueda asignar una dirección diferente a un puntero? ¿Nombre otro lenguaje ampliamente utilizado en el que no pueda asignar una referencia del mismo tipo a un objeto diferente? ¿En qué otro lugar me vería obligado a describir un constructor o una función de copia debido a estas limitaciones de su lenguaje?

Y si la controlabilidad es primordial para usted, ¿por qué otros lenguajes controlados no imponen restricciones similares?

Personalmente, para mí, lo primero no es la seguridad y la capacidad de control, sino la rapidez con la que puedo poner en práctica una idea; esto es sumamente cierto en el contexto de las ideas comerciales; quienes no están de acuerdo con esto o bien sobrestiman el valor de sus sistemas, o bien programan por programar, no por un resultado concreto.

C#, ya sabes, es un lenguaje industrial, ya ha sustituido en gran medida a C++ en las aplicaciones empresariales/de Internet. Así que no hay punteros, o más bien están ahí, pero inseguros, y nadie necesita código inseguro, sólo para manualidades personales.
 
Alexey Volchanskiy:
C#, ya sabes, es un lenguaje industrial, ya ha sustituido en gran medida a C++ en las aplicaciones empresariales/de Internet. Así que no hay punteros, o mejor dicho, los hay, pero inseguros, y nadie necesita código inseguro, sólo para las manualidades personales.
¿alguna ventaja de c sharp para la gente común?
 

¿Y por qué es tan malo un puntero desnudo? Si no se hace con optimizaciones estrictas de aliasing, los punteros son bastante seguros en general (msvc lo ha hecho).

En general, toda esta charla sobre la seguridad no hace más que velar las verdaderas razones, como se ha dicho antes. Y la razón es simple, creo - no permiten conocer de ninguna manera las direcciones de las funciones que se pasan a la dll. Un sistema enterrado no necesita el mundo exterior.

 
¿O el MC está bien con los colbacks normales? Tengo una idea, ¿el tema está prohibido?
 
Alexey Volchanskiy:
C# ya sabes, es ahora un lenguaje industrial, ya ha sustituido en gran medida a C++ en las aplicaciones empresariales/internet. Así que no hay punteros, o mejor dicho, están ahí, pero inseguros, y nadie necesita código inseguro, sólo para manualidades personales.

¡Por cierto!

Hace tiempo conocí una comparación de los lenguajes C y Pascal

El lenguaje C es conducir un Ferrari por una carretera de montaña a 180 km/hora,

y la lengua de Pascal es un paseo tranquilo en limusina por una carretera ancha de un solo sentido a 40 km/h.

C estaba destinado a ser un lenguaje de hombres de verdad).

En la C, hay que estar atento a las señales :-) El lenguaje C no es para los débiles de corazón, porque si no sigues las señales te arriesgas a salirte de la pista en una curva cerrada.

C es el lenguaje de los sistemas operativos y las utilidades, los controladores. C fue escrito originalmente por profesionales que escribieron los sistemas operativos y las utilidades para los usuarios.

Pascal fue escrito originalmente en C para estudiantes. Pascal fue escrito como un lenguaje de instrucción.

La diferencia en la finalidad y el uso de las herramientas es evidente.

MQL es esencialmente un derivado de C , la elección de los desarrolladores de MetaQuotes es profesionalmente muy correcta.

 
Yuriy Zaytsev:

¡Por cierto!

Hace tiempo conocí una comparación de C y Pascal .

El lenguaje C es conducir un Ferrari por una carretera de montaña a 180 km/hora,

y la lengua de Pascal es un paseo tranquilo en limusina por una carretera ancha de un solo sentido a 40 km/h.

C estaba destinado a ser un lenguaje de hombres de verdad).

En la C, hay que estar atento a las señales :-) El lenguaje C no es para los débiles de corazón, porque si no sigues las señales te arriesgas a salirte de la pista en una curva cerrada.

C es el lenguaje de los sistemas operativos y las utilidades, los controladores. C fue escrito originalmente por profesionales que escribieron los sistemas operativos y las utilidades para los usuarios.

Pascal fue escrito originalmente en C para estudiantes. Pascal fue escrito como un lenguaje de instrucción.

La diferencia en la finalidad y el uso de las herramientas es evidente.

MQL es esencialmente un derivado de C. La elección de los desarrolladores de MetaQuotes es profesionalmente muy correcta.

¿Qué más da la lengua en la que se escriba?

(Al fin y al cabo, se pueden escribir controladores y todo lo demás en Pascal).

Es importante entender qué y cómo se hace, y el lenguaje de programación es un asunto doble.