IBM no quería que Microsoft usara la tecla Tab para moverse entre campos de los cuadros de diálogo
(devblogs.microsoft.com)- En la época en que Microsoft e IBM desarrollaban OS/2 en conjunto, decidir qué tecla usar para moverse entre campos en un cuadro de diálogo se convirtió en un punto de fricción que dejó ver las diferencias en su estructura organizacional
- Un colega de Microsoft asignado a la oficina de IBM en Boca Raton decidió usar la tecla TAB como tecla de navegación entre campos, y IBM exigió que el tema se elevara al gerente en Redmond
- El gerente de Microsoft respondió que él estaba en Boca justamente para tomar ese tipo de decisiones en su lugar, y el mensaje se transmitió a IBM como “Microsoft respalda el uso de la tecla TAB para este propósito”
- IBM no quedó satisfecha y elevó el asunto por varios niveles siguiendo su estructura organizacional, afirmando que un VP situado unas siete capas por encima del programador se oponía al uso de la tecla TAB, y pidió una confirmación de un directivo de nivel equivalente en Microsoft
- El colega de Microsoft respondió que “a la madre de Bill Gates no le interesa la tecla TAB”, y al parecer con eso terminó la discusión y la tecla Tab se mantuvo
Diferencias en la estructura organizacional expuestas durante la colaboración en OS/2
- Durante la época en que Microsoft e IBM desarrollaban OS/2 en conjunto, hubo choques culturales: del lado de Microsoft veían a sus colegas de IBM como personas atadas a una burocracia innecesaria, mientras que en IBM veían a la gente de Microsoft como hackers sin disciplina
- Uno de los puntos de conflicto fue la estructura organizacional, y la discusión giró en torno a qué tecla debía usarse para pasar de un campo a otro en un cuadro de diálogo (dialog box)
- Un colega de Microsoft había sido asignado a la oficina de IBM en Boca Raton, Florida, y decidió usar la tecla TAB como tecla de navegación entre campos
- IBM no estuvo conforme con esa decisión y pidió que el asunto se elevara a su gerente en Redmond
La delegación en Microsoft y el proceso de escalamiento en IBM
- El gerente de Microsoft respondió: “La razón por la que estás en Boca es para tomar ese tipo de decisiones y que yo no tenga que estar en Boca”
- Antes de transmitirse a IBM, esa respuesta se reformuló con un tono más corporativo como: “Microsoft respalda el uso de TAB para este propósito”
- IBM no quedó satisfecha y elevó el asunto varios niveles siguiendo su estructura organizacional
- IBM afirmó que un VP ubicado unas siete capas por encima del programador estaba absolutamente en contra de usar TAB para este propósito, y pidió una confirmación de un directivo de nivel equivalente en Microsoft
El final de la discusión
- El colega de Microsoft respondió: “A la madre de Bill Gates no le interesa TAB”
- Después de esa respuesta, al parecer la discusión terminó y la tecla TAB se mantuvo
- El texto cierra con la broma de que en Estados Unidos el próximo domingo es Mother’s Day, pero no recomienda preguntarle a tu madre su opinión sobre la tecla TAB
- Es posible que las valoraciones que Microsoft e IBM tenían una de la otra fueran, hasta cierto punto, válidas
1 comentarios
Comentarios de Hacker News
IBM era legendariamente sobreburocrática
Alguien con quien trabajé antes hizo unas prácticas de verano a mediados de los 90 en IBM Londres, haciendo algo parecido a lo que hoy sería ingeniería de QA, y contó que en ese entonces estaban en medio de un cambio en la cultura de ir todos de traje, así que los practicantes pidieron que se les permitiera ir con ropa casual los viernes
Como trabajaban encerrados en una oficina al fondo sin contacto con clientes, pensaron que no era gran cosa, pero la respuesta llegó apenas unos meses después, justo antes de que terminara la práctica, y la solicitud había subido por una cadena de aprobación de cuatro niveles en la oficina de Londres, luego pasó a la sede en EE. UU. y terminó en el escritorio de un vicepresidente
Parece que cada nivel tardó semanas en decidir si tenía autoridad para manejar un asunto tan trascendental, y la respuesta regresó por la misma ruta, bajando nivel por nivel y cruzando el Atlántico hasta llegar a los practicantes de traje en Londres, cuando ya les quedaban apenas unos días de práctica
La respuesta fue no aprobada
Pero 8 meses después, RH de IBM me llamó para preguntarme si quería entrevistarme el jueves siguiente, y cuando les dije que ya no me interesaba, se quedaron completamente desconcertados
No sé qué estaban pensando, pero tenían una autoestima exagerada para no estar ofreciendo tampoco un gran sueldo
El ambiente era bastante informal, y no lo digo para negar la historia anterior, solo para aportar otra perspectiva
Pedí una excepción a una cláusula del contrato que le daba a IBM prioridad sobre la propiedad intelectual creada fuera del horario laboral
Yo solo trabajaba en un call center de soporte técnico, no tenía acceso a información propietaria exclusiva de IBM ni tenía un rol de desarrollo, así que en ese aspecto no había ningún riesgo
De hecho, todas las personas con las que uno podía hablar en persona pensaban que era una solicitud muy razonable, pero tomó 6 semanas recibir la primera respuesta de rechazo, y luego mi jefe directo intentó mediar, lo que agregó otras 2 semanas de revisión, aunque la respuesta siguió siendo negativa
Parece que subió por la línea de reporte hasta EE. UU., se desvió al área legal y luego volvió a bajar, y al final dejé la empresa para evitar el riesgo de que IBM reclamara derechos incluso sobre un pequeño proyecto de software con un amigo
Además, los formularios de RH se habían redactado a principios de los 80 y digitalizado en los 2000, y nuestro equipo, que no era de atención al cliente, era muy diverso
Hubo un intento de actualizar los formularios para reconocer otras combinaciones de género y pronombres, pero la revisión tomó unas 12 semanas y al final parece que lo rechazaron porque nadie quería averiguar quién tenía que cambiar el formulario
El equipo tenía muchos integrantes LGBT y parecía importante retenerlos, pero aun así lo rechazaron tajantemente
La capacitación de prevención del acoso sexual se entregaba en cinta en 2010, y decía que era una “versión actualizada”, así que quizá antes venía en disco de vinilo
Esta historia se siente rara porque IBM usó una nomenclatura de teclado consistente en varios productos, y las terminales mainframe de la familia 3270 movían el cursor al siguiente campo con la tecla Tab, ubicada donde está Tab en los teclados modernos
https://www.bitsavers.org/pdf/ibm/3278/GA27-2890-4_3278_Disp... página 73 del PDF
Como referencia, en las terminales IBM moverse entre campos era tan importante que del otro lado de la tecla Tab había una tecla dedicada de Back Tab
En la PC original de IBM ambas funciones se combinaron en una sola tecla, y por eso la tecla Tab de los teclados clásicos de PC lleva juntos los símbolos de tabulación hacia adelante y hacia atrás; que el símbolo de tabulación hacia atrás esté arriba significa que hay que presionar Shift
Además, las terminales de la familia 5250 usaban los términos “Field Advance” y “Field Backspace” en lugar de Tab/Back Tab, pero los símbolos y la posición de las teclas eran más o menos los mismos que en la familia 3270
Referencia: https://www.bitsavers.org/pdf/ibm/5291/GA21-9409-0_5291_Disp...
Solo hay que ver la tecla “Next field” a la izquierda y su par “Previous field” a la derecha
El IBM 3270 era un dispositivo para llenar formularios, y el mainframe enviaba al terminal un formulario con espacios en blanco para que el usuario los completara
El hardware del terminal impedía sobrescribir las partes fijas del formulario y también aplicaba restricciones como campos numéricos, y todo eso se procesaba en el terminal
Cuando el formulario estaba completo, el usuario presionaba ENTER y el formulario terminado se enviaba al mainframe como una sola transacción
Este enfoque permitía que un solo mainframe manejara una cantidad enorme de terminales, y el usuario podía escribir rápido sin ver el teclado y sin sentir latencia durante la captura
La PC no tenía ese modelo de uso, y la gente del mundo PC pensaba en una “máquina de escribir”
Una de las primeras terminales para computadoras domésticas incluso se llamaba “TV Typewriter”
Los formularios web sí tienen este modelo, pero con mucha menos consistencia
[1] https://sharktastica.co.uk/resources/images/model_bs/themk_1...
Pero es solo una especulación
En la IBM de los 80 había un grupo senior de técnicos llamado “Systems Engineers”, y todo su trabajo consistía en comentar las ventajas y desventajas de ciertos sistemas
No escribían sistemas, no los depuraban ni los explicaban; solo estaban ahí para dictaminar: “lo estás haciendo mal”
Para el equipo de Microsoft parecían una organización desesperadamente corporativa, pero dentro de IBM la gente de Boca era vista como una “unidad rebelde”, y de hecho la mayor parte de IBM ni siquiera sabía que existían
Desde la percepción temporal de IBM, casi apareció de la noche a la mañana y se movió a una velocidad increíble, y eso fue posible porque Thomas Watson Jr. aprobó ese skunkworks imponiéndose a la oposición de sus subordinados
Por eso en Boca casi no había la supervisión, coordinación ni control que normalmente habría en un proyecto de ese tamaño
Al principio Boca operaba fuera de la cadena normal de reportes, y cuando intentaban conseguir tecnología o componentes de otras partes de IBM a veces tenían que explicar que realmente sí pertenecían a IBM
Una era la Return habitual de hoy, que solo movía al siguiente campo y no enviaba el formulario
La otra tecla Enter estaba donde hoy está el Ctrl derecho, y esa sí enviaba el formulario
Así que quizá IBM no se oponía a la tecla Tab en sí, sino a usar como tecla de envío del formulario la Return, que los usuarios de 3270 esperaban que solo avanzara al siguiente campo
Muchos programas DOS también funcionaban así: al presionar Return ibas al siguiente campo en lugar de enviar el formulario, y fue una de las cosas a las que hubo que acostumbrarse en Windows
CUA dice explícitamente que Tab y Backtab se usan para moverse entre campos
Así que IBM terminó oponiéndose a su propio estándar a través de 7 niveles de gerencia: https://archive.org/details/ibmsj2703E/page/n13/mode/2up
Como alguien que prefiere Tab, no intento iniciar una discusión, pero alguna vez le pregunté a Brendan Eich en Twitter por qué prefería espacios
Su respuesta fue más reflexiva de lo que esperaba
Como los sistemas operativos modernos y el comportamiento de las interfaces de usuario secuestran la propia tecla Tab, se vuelve complicado introducir un carácter de tabulación real, especialmente en contextos como el navegador
Aun así yo sigo prefiriendo Tab y soy desarrollador Go, pero en esto él tenía toda la razón: sí es un problema realmente molesto
Por ejemplo, intenta meter un carácter de tabulación en el área de texto de Hacker News y lo verás enseguida
Entiendo en parte el argumento, pero si estás escribiendo en el área de texto de HN código donde Tab/espacios importa, ya algo anda mal de entrada
Un editor de código sí maneja correctamente la tecla Tab
Aun así, aunque con Enter hay ciertas convenciones como Shift+Enter, Alt+Enter o Cmd+Enter, sigue molestándome que casi no exista una forma general de introducir un carácter de tabulación en todo el sistema operativo
Shift/Alt/Ctrl+Tab normalmente ya están capturados para otras acciones
Claro que ni la tabulación ni el salto de línea aplican en todos los contextos
También podría ser razonable tener una tecla o combinación para introducir caracteres de control como datos en lugar de como comandos, como pasa con ^V en algunos programas
Son cosas a considerar al diseñar una computadora nueva que no tenga que parecerse a las existentes, y yo sí he pensado en esto e incluso podría tomarlo en cuenta de verdad
La tecla Tab tenía un propósito original, pero fue secuestrada, haciendo más difícil usar su propósito real
No es tan distinto de cuando Apple introdujo la Touch Bar y quitó la tecla Escape
Puede que el usuario promedio casi no la use, pero al desarrollador promedio le cuesta vivir mucho tiempo sin usar esa tecla para su propósito original
Alguna vez escuché que antes la tecla Tab podía representarse distinto según el sistema, así que los espacios, que siempre se representan igual, eran más seguros
¿Eso era lo que Brendan quería decir?
Excelente artículo, pero sigo con curiosidad por saber por qué IBM se oponía a usar la tecla Tab de esta manera
¿Será que no querían que Tab fuera a la vez un carácter de entrada y un carácter de control?
O sea, que en algunos campos de entrada se pudiera escribir Tab y en otros no, y que no fuera fácil saber de inmediato cuál de los dos casos aplica
Incluso ahora, en 2026, puedo simpatizar con ese punto de vista
Primero, porque rompía la compatibilidad con DOS
Los programas DOS usaban Enter, y además el teclado numérico tenía una tecla Enter, así que se podían capturar datos numéricos con una sola mano
Podías dejar la mano izquierda sobre el documento en papel y teclear con la derecha, y la gente se volvía muy rápida haciéndolo
Ese patrón sigue vivo en algunos programas como Excel
A muchos clientes no les gustaba tener que poner ambas manos en el teclado, y muchos de nuestros programas permitían mapear Enter=Tab
Lo importante no es el “nombre” de la tecla, sino su posición
El uso doble de la tecla es solo una molestia que toleramos, y a veces actúa como tecla de navegación y otras como tecla para ingresar espacios
Con Enter habría existido el mismo problema
La solución claramente superior habría sido agregar una tecla nueva al teclado, idealmente en el teclado numérico
En esa época se añadieron muchas teclas nuevas; visto en retrospectiva, ahí debieron haber agregado una tecla de “siguiente”
Porque en ese entorno hay dos funciones totalmente lógicas e intuitivas que Tab podría cumplir, y entran en conflicto
El mismo problema aparece muchísimo más seguido con la tecla Enter, y todavía hoy memorizamos reglas bastante complejas sobre si ctrl+crlf es un salto de línea o el envío de un mensaje, y qué hacen exactamente crlf solo y shift+crlf
En el editor de HN, shift+crlf y crlf solo crean un salto de línea, y ctrl+crlf no hace nada
Pero en otros lados ctrl+crlf dispara el envío del formulario o del mensaje, shift+crlf inserta un salto de línea crudo, y crlf solo puede hacer una de esas dos cosas o ninguna
Esas son asociaciones comunes, pero también he visto excepciones e inversiones, e incluso casos donde shift+crlf envía el formulario y ctrl+crlf inserta el salto de línea crudo
Todo esto es realmente molesto y genera mucha fricción para el usuario, y durante un tiempo la guía de estilo de Microsoft fue vista como una referencia central de mejores prácticas, aunque hoy eso quizá les parezca irónico a muchos
Administrar una organización con innumerables partes móviles y construir algo rápido para los usuarios claramente son preocupaciones muy distintas
Más bien una persona dentro de la burocracia de IBM se metió y detuvo todo, y eso mostraba una diferencia cultural
Porque el texto original, desde el principio, era un texto sobre esa diferencia cultural
IBM también es la razón por la que MS-DOS no soporta “-” en las opciones, y por la que los dispositivos no terminaron en el directorio “\DEV” de todas las unidades
El soporte de “/” como separador de rutas sí sobrevivió
Mucha gente en Microsoft usaba Xenix y era fan de Unix, y en DOS muy temprano existieron las opciones SWITCHCHAR y AVAILDEV en config.sys para este tipo de cosas
Pero según entiendo, IBM se opuso con fuerza y obligó a quitarlas
Lo más irritante del problema de DEV es que DOS 1 ni siquiera tenía directorios, así que no podía haber un gran problema de compatibilidad
Pero como resultado, DOS/Windows quedó atado a asumir que los archivos de dispositivo existen en todos los directorios, así que no puede soportar crear archivos llamados “CON” o “COM1”
Solo que durante años no documentó las llamadas necesarias para hacerlo
Me parece raro porque recuerdo que en el mainframe 3270 la tecla Tab sí se usaba para moverse entre campos
Encontré el PDF de la Operator's Guide
Solo hay que ver https://news.ycombinator.com/item?id=48028227
Usar Tab era casi segunda naturaleza, y cuando pasé a las apps GUI, especialmente las hechas en Visual Basic, me desesperaba cuando el orden de tabulación estaba mal definido
Aunque creo que también había teclas de función reservadas para ese propósito
Nunca usé AS/400, pero entiendo que existía el concepto de una tecla separada de Field Exit
Me hizo reír bastante la parte de “la gente de Microsoft veía a sus colegas de IBM como gente atrapada en burocracia inútil, y la gente de IBM veía a la gente de Microsoft como hackers sin disciplina”
Trabajo en MSFT, y parece que el Microsoft de aquella época era una empresa muy distinta
Ahora siento, igual que mis colegas, que estamos atrapados en burocracia inútil por reuniones interminables, mandatos de IA y teatro de promociones
Pagan bien, pero la burocracia te va drenando el alma
Hay que conectar un control de videojuegos a todas las máquinas y usar la cruceta para moverse entre campos, la tecla ‘A’ para subir un nivel en menús jerárquicos y la ‘B’ para entrar al submenú
Así, para pasar entre campos, primero capturas los datos, luego quitas las manos del teclado, agarras el control, presionas derecha o izquierda y luego vuelves a poner las manos en el teclado
La productividad realmente se dispararía
La idea es permitir controlar naturalmente con gamepad videojuegos que usan controles estándar del sistema operativo
Definitivamente hay que patentarla
Mientras tanto tendremos que conformarnos con la solución de segunda categoría: el mouse
Llevo más de 30 años siendo usuario de Mac, pero de verdad me encantan los artículos históricos de Raymond Chen
Conozco folklore.org, pero ojalá existiera algo equivalente sobre el interior de Apple
Lástima que eso no sea parte de la cultura de Apple
En 1992 fui practicante de verano en el equipo de System Software, y uno de mis proyectos era mejorar una función del Disk Initialization Package que marcaba bloques defectuosos encontrados durante la inicialización del disco
La función existente funcionaba, pero era muy lenta, no mostraba progreso y no se podía cancelar
La parte más complicada era la interfaz de usuario
Mejoré mucho la velocidad, pero como no había forma de saber cuánto iba a tardar todo el proceso, cualquier heurística para mostrar el tiempo restante era pésima
Vi a unas cuantas mesas de distancia a alguien cuyo cargo era “User Interface”, me pregunté si podría ayudar, le pregunté si tenía un momento y me senté con Bill Fernandez, empleado número 4 de Apple y la persona que presentó a los dos Steve entre sí, para resolver el problema
Fuera de mi gerente, fue literalmente la persona más amable que conocí ese verano, entendió el problema por completo de inmediato y propuso una solución excelente
La idea fue abandonar la estimación del tiempo restante y cambiarla por una barra de progreso indeterminada que avanzara cada vez que se probaba una pista del disco
Funcionó bien, a la gente le gustó y se incluyó en una actualización menor después de la 7.1
No es tan increíble como los textos de Raymond, pero para empezar no está mal
Me resulta admirable que todas las épocas hayan estado llenas de peleas por casi todos los detalles
Las teclas, sus distribuciones, su forma, su significado, todo
Y a la vez es muy raro y gracioso que ahora a casi nadie le importe nada de eso