Hace 2 años | Por ccguy a boingboing.net
Publicado hace 2 años por ccguy a boingboing.net

"No soy un verdadero programador. Yo armo cosas hasta que funcionan y luego sigo adelante. Los programadores de verdad dirán: 'Sí, funciona, pero hay fugas de memoria por todas partes. Quizás deberíamos arreglarlo'. Yo me limito a reiniciar Apache cada 10 peticiones", dijo. En una entrevista de 2002, el programador danés-canadiense dijo lo siguiente: "PHP es tan emocionante como tu cepillo de dientes. Lo usas todos los días, hace su trabajo, es una herramienta sencilla, ¿y qué? ¿Quién querría leer sobre cepillos de dientes?".

Comentarios

D

PHP = Puedo Hacerlo Peor

ccguy

#7 valgrind

Un héroe

JungSpinoza

#42 y ya que estamos.

.

h

#16 hombre, un grandisimo lenguaje, pues va a ser que no.
Esta lleno de inconsistencias en su diseno. Es algo que funciona y poco mas.

Y eso sin meternos a hablar de seguridad.

a

#82 lol Y tiene pinta de que así seguira.

¿A que no adivinas como resuelve la siguiente línea?
document.write(('b' + 'a' + + 'a' + 'a').toLowerCase());

pkreuzt

#3 Huy, si yo te contara. . . Hubo una época en que se descubrían un par de bugs de PHP a la semana. Pasabas más tiempo actualizando y retocando las plataformas que usándolas

casius_clavius

Le entiendo, y le honra decir tales cosas. Yo he llegado a momentos programando en C, con programas monstruosos, que he perdido el hilo de por qué en un caso concreto de cada cien posibles, y sé cuál es, cierta función casca por un fallo de memoria. Claro que se puede rastrear el origen del fallo, pero a veces equivale al esfuerzo de rehacer la mitad del código. Es una especie de condena.

montaycabe

#11 dios nos concedió el poder de modificar el DOM pensando que lo usaríamos para cambiar la imagen de un botón al hacer rollover y caímos en el mal creando cosas como Angular

PauMarí

#91 uno es estricto (también compara tipos) y el otro no (solo compara "valores"). Es decir, un "carácter cero" con == es igual que el "número cero", con === no son iguales (como debe ser).
Y no veas el jaleo que montas en PHP con el 0, el espacioso en blanco y el false como no uses ===
PD: Por eso se llama "lenguaje no tipado" al php (entre otros), no tiene en cuenta los tipos de los datos (simplificando).

coderspirit

Quien lo iba a decir, con lo amado que es su lenguaje entre la comunidad de programadores.

juanparati

Para todos los que odiáis PHP, solo recordad que Meneame esta programado en PHP

Trublux

La frase que más me gusta y que me representa es está:
"PHP 8 is significantly better because it contains a lot less of my code."

R

#40 No he escrito una linea de Javascript en mi vida. Han sobrecargado el operador + para String y entero como concatenacion pero para - lo han sobrecargado con cast y resta?

emilio.herrero

#33 Bueno como digo hoy contamos con frameworks que obligan al programador a realizar buenas practicas e implementar patrones de diseño, evidentemente ñapas siempre ha habido, hay y siempre las habrá. Pero el PHP moderno no tiene nada que ver con el PHP de los 90 y principios del 00.

coderspirit

#22 Javascript es una aberración monstruosa. Lo suyo no son bugs, son fallos de diseño garrafales. Casi todo lo que la gente disfruta del lenguaje se añadió mucho, mucho después, y son precisamente features que lo alejan de su esencia original y lo acercan a otros lenguajes más bien diseñados.

Su ventaja nunca ha sido el ser un buen lenguaje. Solo está donde está porque nació en el contexto de los navegadores web.

Pablosky

#33 Razón tienes, pero las aberraciones que se hacían con PHP4 comparado con algo bien hecho en PHP7 es sencillamente ver dos lenguajes completamente diferentes que comparten la sintaxis.

box3d

#32
Netscape:
"Oye, crees que eso es una buena idea?"

Eich:
"Lo quieres rápido o lo quieres bien?"

Netscape:
"Rápido, para mañana si puede ser"

JungSpinoza

#23 >> Que parió Javascript en un mes escaso de tiempo

Diez dias cuenta la leyenda.

PacoJones

PHP no es tan malo, lo que hay son malos programadores.

D

¿¿¿Qué utilidad tiene renombrar un programador???

Vale... ya me voy.



#16 La precariedad laboral y el instrusismo han hecho mucho daño a este y otros lenguajes. Con el tiempo tendrá el mismo tratamiento que el COBOL.

prejudice

#37 los mineros no bajan a la mina en su tiempo libre.

d

Me encanta su sentido del humor, es un soplo de aire fresco entre tanto friki y sabiondo de stackoverflow.

d

#21 mi madre tenia una lavadora, lavaba a mano algunas veces, otras con la lavadora. Hoy ya no lava, lava mi padre, pero a veces usa la aspiradora

montaycabe

#115 ...y hacen jugadas tan maravillosas como sacar una nueva versión y en vez de darle un nombre nuevo, renombran LA ANTERIOR y toda la documentación existente a tomar por culo. Solo por eso el infierno se les queda corto.

D

Programar es una auténtica mierda que nos da de comer

JungSpinoza

#42 These are your father's parenthesis .... An elegant weapon, for a more... civilized age

.

Pablosky

#63 Sí claro.

Mira el código de Wordpress, cuando lo comprendas y entiendas -> NUNCA EN TU PUTA VIDA HAGAS ALGO ASÍ.

Si te va el masoquismo del bueno bueno, ya directamente busca en los confines de Internet como funcionaba PHP-Nuke, aprende a usarlo y luego, cuando te parezca bueno Wordpress, tampoco hagas nada como Wordpress.

#38 Y que lo digas. Yo me gané la vida profesionalmente como programador PHP de 2000 a 2002. Desde hace 16 años soy profesor. El año pasado hice un curso de Laravel y flipé.

Ludovicio

#82 En general, el tipado de JS es una risa.

box3d

#51 Typescript es a JS lo que C++ es a C. Y sí, C++ es mejor, pero hereda mucha basura de C. Y así lo admitimos los que lo usamos.

Y definitivamente en el bajo nivel se vive mejor. Con C89, C99, C++95, C++11... y poco más.

emilio.herrero

#48 Bueno... con PHP 8 puedes tipar los métodos y olvidarte del ===

a

#91 Ya te han respondido bien y no tiene que ver, pero ahí va el offtopic tirando del hilo de comparaciones (equal) en PHP:

Pon el valor a comparar siempre a la izquierda de la variable que quieras comparar. Si se te olvida un =,

0 = $var;

Rompe y te avisa.

$var = 0;

Asigna 0 a $var.

A esto lo llaman Yoda conditions.

Y si quieres dejar lo del spaguetti para las comidas y las religiones, puedes probar con https://phptherightway.com/, https://refactoring.guru/es y https://codely.tv

EmuAGR

#126 Lo del NaN es tremendo. lol

coderspirit

#4 No, si aunque no soy de los viejunos viejunos, empecé mis pinitos cuando aun estábamos con PHP 3.0, antes de que se introdujera la "orientación a objetos", y cuando lo de las fugas de memoria no era solo "un decir", sino la razón básica para que PHP sea de los pocos (o el único?) lenguajes "server-side" que no funcionaba con procesos de larga duración...

prejudice

#20 yo

box3d

#59
En C te cascaría un error críptico diez lineas más abajo.

par

#10 Una herramienta muy útil.

z

#36 web assembly no permite acceso al DOM. Al menos todavía (y no tienen pinta de que lo vaya a permitir).

Pablosky

#106 Sin querer negar que el PHP puede llegar a ser espeluznante si el que lo maneja no sabe, cuando un programador no sabe lo hace mal en TODOS los lenguajes.

A veces puede ser un programador técnicamente muy correcto pero que es incapaz de lograr una lógica en sus programas mínima, y de repente te encuentras código que pasa los test unitarios, los test de integración, que es "correcto", que cuando lo miras es bonito, que hasta es simple (aunque no elegante)... pero que falla estrepitosamente cuando llega a producción y se debe a cosas increíblemente básicas que nadie ha tenido en cuenta y que son de "primero de programador".

D

#16 Jodo no he entendido ni una sola línea lol

ccguy

#112 qué es el intrusismo en informática?

D

Tiene razón, programar es algo muy tedioso, espero algún día lo hagan las máquinas solas

prejudice

#23 #22 Para eso está Typescript.

PacoJones

#72 Drupal está escrito en PHP y es uno de los grandes ejemplos de código bien hecho, limpio y estructurado siguiendo buenas prácticas.
Wordpress es una mierda pinchada en un palo ejemplo de cómo no se debe de hacer.

Ludovicio

#79 "Oyes campanas y no sabes dónde". Se lo diré a mi jefe. Que me despida que mis años de experiencia en JS no me han enseñado nada
Perdóneme usted eminencia.

A lo que me refería, y el resto parecen haber entendido, es que es un lenguaje que se diseñó inicialmente para hacer pequeños scripts y a día de hoy su uso es muy distinto. Todo lo que me estás diciendo son obviedades.

F

#99 Claro, en Java o en NodeJS son mucho mejores. Ni que decir tiene coger un programa en COBOL o C++. No todo es Python en esta vida.

F

#99 Un lenguaje que requiere frameworks para ser mínimamente escalable y mantenible no es lo que yo calificaría de un "buen" lenguaje.

¿Has probado a hacer una app web sim framework en Java (por nombrar la segunda tecnología más popular backend del mundo web)? Serías el primero que conozco que ha salido a producción con ello y ha aguantado más de un par de años.

¿Que tiende a ser un infierno mantenerlo en la mayoría de casos? también.

Que vamos, no es por hatear, solo es mi opinión basada en mi experiencia teniendo que tocar aplicaciones de otros. Si fuera solo cuestión del programador, las aplicaciones hechas en otros lenguajes serían igual de desastre, pero tienden a ser peor cuando están en php, por lo que sea.


Claro, en Java o en NodeJS son mucho mejores. Ni que decir tiene coger un programa en COBOL o C++. Mucho mantenible todo. No todo es Python en esta vida chico.

D

#39 Correcto, es más el día que fui de visita a Italia me encontré una moneda, no recuerdo cuántas liras eran. Nada, al final no valia nada. La guardé para no perderla, pero ahora no sé dónde está.

d

#142 el bocadillo tenia atun pero no se donde acabo la mortadela tampoco

D

#24 Lo que viene a ser la burocracia en un estado.

HaCHa

#8 Un acrónimo que termina en HP es imposible que signifique eso.

Paltus

El que descubrió los polímeros pensaba que su invento era una mierda. Se acabó suicidando. Hoy vivimos en la era del plástico.

K

#6 JavaScript es una pasada. Y no hablo de frameworks ni plataformas ni pollas. Hablo a nivel lenguaje. Aunque tiene muchos bug que se han convertido en features muy absurdas, no quita que el lenguaje sea único y adaptable.

navi2000

#19 No

coderspirit

#16 #104 Y si me dices que Laravel es un buen framework ya me lo has dicho todo. Nunca nos vamos a poner de acuerdo. Laravel es otra aberración del infierno que se dedica a dar palizas y a escupirle a SOLID y muchos otros conceptos de arquitectura de software sin aportar ningún beneficio tangible a cambio.

box3d

#111 C++ moderno apenas sufre nada de ello. Cíñete a nunca usar un puntero desnudo, usar shared/unique donde toca, y te has ahorrado el 90% de los problemas de C/C++

Respecto a operaciones peligrosas, nada que no tengan otros lenguajes modernos. Python y Js tienen "mixins" para implementar la herencia múltiple, y a falta de constructor de copia, en otros lenguajes tienes que explicitar de alguna forma si una copia es profunda o no si esta no es como el lenguaje hace por defecto. Reimplementar operadores es "syntactic sugar" si quieres usarlo, nada te impide usar .append() en vez de operator

R

#126 Yo sin escribir una linea de Javascript? Te aseguro que va a seguir siendo asi.

Sobre el acertijo, me gustaria pensar que en un error de compilacion, pero obviamente no va a pasar. Y sospecho que tampoco va a ser baaa.

editado:
Acabo de leer la solucion. Por un lado, esta bien saber que no han hecho nada raro como decir que '+ +' es lo mismo que '+', pero por otro lado, lo que pasa despues...

a

#131 Me parece una sabia decisión, la comparto a efectos prácticos.

La respuesta, en el enlace que está en el comentario

R

Recuerdo en los 80s, estaba en una superficie mayorista y toda la empresa asustada "hay que llamar al programdor que el ordenador no funciona", llamarlo a 200 km qu venga y se entiende pagarle muy bien ... era chico, en los 90s eso de "programador" era como ser alguien, un yuppie de esos un triufador gracias a sus estudios y lo inteligente que es el tio, ahora por un lado dicen que es como el que trae los cafes a la oficina, o cuando efectivamente, hablando con uno y con otro ingenieros informaticos te dicen "yo no soy programador" ... osea programador era yuppie, tio de exito y genio ... y hoy oscila entre una cosa asi, como un pringao laboralmente muchas veces, una cosa rara oscilante que no se termina de saber que es eso

d

#14 amen, como bajar a la mina

K

#52 Typescript es a JS lo que C++ es a C.

??

Nope.

madalin

Esto viene a confirmar el "El Teorema de los Infinitos Monos", ¿no?

d

#5 ¿Quizás porque jamás se pensó para tratar procesos de larga duración?

box3d

#24 Eso es JS++, que se compila a JS normal. Para eso ponme WebAssembly, que me permite separarme totalmente de JS al menos al escribir código casi en el lenguaje que me de la gana.

box3d

#13 Lisp:
Lo hizo un mago. Con muchos ((((((()()(()))))))(()(())(

EmuAGR

#43 ¿He dicho alguna mentira? Trabajo todos los días con JavaScript, a todas horas. Y que sepas que NPM es un coladero de fallos de seguridad. roll

PD: La cita la has formateado dpm, espero que no pongas los puntos y coma igual en JS (al menos ponlos).

EmuAGR

#64 ¿Qué problemas de seguridad tiene PHP? Si expones cualquier aplicación a Internet, tendría los mismos problemas de seguridad.

EmuAGR

#47 No dejan de repetir que hacen falta programadores. La cuestión es que hay suficientes, pero quieren provocar paro en el sector para hundir los salarios.

EmuAGR

#70 Medio WWW está programado en PHP. La otra mitad no funciona o se rompe aleatoriamente como las páginas de la Administración en JSP/ASP.

EmuAGR

#148 C permite programar aplicaciones con desbordamientos de pila y de búfer. ¿Decimos que C es inseguro?
Son herramientas, el inseguro es el programador que las hace, que no controla bien todas las condiciones.

D

#18 es lo que tiene el exceso de oferta

frg

#48 #67 ¿Alguien puede explicar esto a un mierdaprogramador de código espagueti?

El manual dice que == es equal y === identical

E

Habiendo programado PHP normal que odie la programación

Pablosky

#76 ¿Cuál de las dos versiones? ¿La anterior a usar las librerias de Symfony o la que las usa?

j

#24 iba a poner lo mismo

j

#22 cuando conozcas typescript vas a flipar entonces

navi2000

#18 pues que cambie de empresa ese "programador"

joffer

Algún buen tutorial donde empezar y profundizar?

box3d

#62 igual que C permite aliasing y C++ te va a gritar fuertemente con Warnings que no lo hagas, pero puedes ignorarlo o decirle al compilador que cierre la boca, que yo controlo lol

D

No hay lenguaje malo , solo programadores inexpertos...

Ludovicio

#80 Y el demonio se extendió hasta el back.

Ludovicio

#66 Typescript es un superconjunto de javascript con matices, del mismo modo que c++ es un superconjunto de c con matices.

Las diferencias que se están planteando son esos matices.

ktzar

Dejé de tocar PHP hace casi ocho años... No volvería a tocarlo si pudiera evitarlo, pero es un lenguaje sumamente interesante, ver cómo ha evolucionado, la cantidad de cosas interesantes que uno encuentra en su librería estándar...

montaycabe

#85 Yo era frontender, hacia que las cosas se vieran bien y bonitas en cualquier navegador, metía efectos visuales, maquetaciones complejas, todo se veía fluido y rápido. Ahora me preguntó que coño hago leyendo y sirviendo datos en react como un vulgar backend. Esto es una estafa.

s

#62
const obj: any =
obj.b = 2;


TypeScript es javascript con anotaciones. Basta cambiar la anotación. Y si no quieres usar any pues creas el tipo... Y si no quieres crear el tipo ni usar any, pues te peleas con el tsconfig, babel, el linter y demás y lo haces.

box3d

#105 Lo que le comentaba al otro en este hilo es que, heredar todo JS heredas muchas de las basuras de JS, por necesidad.
De la misma forma que C++ heredó muchísimos de los problemas de C. C++ es un lenguaje más amable que C, y si solo programas en C++ no tendrás ningún problema con las "putaditas" de C, pero al final terminas teninedo que enfrentarte a todos los problemas de C de una u otra forma, es inevitable tener que lidiar con código "Estilo C" en C++ o directamente código en C.

A TypeScript le pasa... Lo mismo. Si te limitas a typescript, solo usas typescript y evitas JS "tradicional" como la peste... Terminarás teniendo que pelearte en algún momento con las putaditas de Js, igual que los de C++ tenemos que conocer C y sus putaditas por si acaso. y esto último lo puedo confirmar por dilatada experiencia.

1 2