Si quisiera crear un programa que tome datos de EDGAR y ofrezca diferentes funciones analíticas, ¿qué lenguaje de programación necesitaría aprender?

Eso dependería de sus medios disponibles para acceder a los datos; por ejemplo, ¿están los datos en el archivo o se transmiten a través de una conexión de red? ¿Los datos tal vez se proporcionan en un cursor de acuerdo con una consulta SQL?

EDGAR ofrece una opción de FTP para el acceso a datos, en cuyo caso terminará con un archivo lleno de registros de datos, o posiblemente envíe un registro a la vez de forma secuencial.

La mayoría de los idiomas (¿todos?) Tienen la capacidad de analizar datos sin procesar, sin embargo, el lenguaje que haría que esto sea más fácil sería (posiblemente) Perl. Me refiero a la simplicidad y al poder de la extracción de datos en sí, así como a cualquier análisis que desee hacer.

Digo posiblemente porque habrá muchas otras respuestas que discutirán mi punto, je je.

Cuando se trata de datos de cualquier tipo, ya sea ASCII, binario o una combinación, registros de longitud variable, así como registros de longitud fija, codificados con MIME, extraídos de cintas, tomados por FTP, leídos de archivos CSV, recuperados a través de SQL, o solo texto de forma libre; este es el tipo de cosas para las que Perl está optimizado, y requerirá menos, a veces radicalmente menos, líneas de código para hacer el trabajo.

He usado otros idiomas que están aún más optimizados que Perl, pero están casados ​​con sus propios formatos de base de datos, por ejemplo, PICK.