З баченням кращого майбутнього, Tesla стала не тільки найдорожчою автомобільною компанією, яка коли-небудь існувала, але й стала однією з провідних технологічних компаній у світі. Tesla зробила все, від автономних транспортних засобів до роботів AI. Але які мови програмування допомогли організації створити такі футуристичні продукти? Давай дізнаємось.
Мови програмування, які використовуються в Tesla
1. C і C++
Останніми роками з’явилася велика кількість нових мов програмування, таких як Elixir, Pony, Julia тощо, створених для полегшення завдань із якомога меншою кількістю коду. Проте Tesla все ще в значній мірі покладається на одну з найосновніших мов: C і C++.
«Більшість програмного забезпечення в Автомобілі Tesla це C або C++», — сказав Мехді Аміні, менеджер з техніки Tesla. Однією з найбільших сильних сторін цих старих мов і, ймовірно, причиною їхнього виживання в часі є те, що ці мови можуть працювати практично в будь-якій системі. Приписуючи свою близькість до ОС, ці низькорівневі мови програмування використовуються в більшості IoT і вбудованих систем і допомагають інженерам оптимізувати програмне забезпечення.
«Жодна мова програмування не наблизилася до C чи C++, коли йдеться про ефективність. Більшість сучасних мов програмування зі збирачами сміття є недетермінованими, коли справа доходить до управління пам’яттю, це просто не підходить для критично важливих вбудованих систем, таких як ті, що в автомобілях Tesla», – сказав Мехді. Ще одна велика технологічна компанія, яка широко використовує C & C++ Nvidia.
2 Python
Окрім C і C++, Tesla також в значній мірі покладається на, можливо, найпопулярніший і широко використовуваний мову; Python. У серії твітів Ілон пояснює, як вони використовують комбінацію C/C++ і Python для створення своїх алгоритмів:
Наш NN спочатку на Python для швидкої ітерації, а потім конвертований у код драйвера C++/C/raw metal для швидкості (важливо!). Крім того, багато інженерів C++/C потрібні для керування транспортним засобом та всього іншого автомобіля. Освітня освіта не має значення, але всі повинні пройти іспит на жорстке кодування.
- Елон Маск (@elonmusk) 3 Лютого, 2020
Цей твіт спонукав багатьох розробників підкреслити недоліки перетворення з Python на C++/C, але давайте пам’ятати, що твіт є лише стислим поясненням добре продуманого процесу і не відповідає дійсності використовувані методики. Суміт Чінтала, співавтор PyTorch, пояснює, що вони, швидше за все, виконують автоматичне перетворення з Python на C & C++. Ілон також вказав на їхню залежність від PyTorch;
PyTorch є найбільш часто використовуваним зовнішнім набором інструментів/бібліотекою
- Елон Маск (@elonmusk) 3 Лютого, 2020
PyTorch – це бібліотека, створена для машинного навчання, комп’ютерного зору та обробки природної мови. Він повністю відкритий і створений дослідницькою лабораторією AI Facebook.
3. Java і Javascript
Згідно з опитуванням, проведеним Burning Glass, Java та Javascript є наступними за рівнем використання та важливості для мов у Tesla. Обидві ці мови активно використовуються у створенні систем і програм для їхніх автомобілів. C++, Python і Java – це мови, необхідні для майже всіх вакансій в Tesla. Крім того, Tesla вимагає високого знання Javascript для ролей, пов’язаних із програмуванням інтерфейсу. Дізнайтеся більше про роботу в Tesla тут.
4. Інші мови
Tesla також вимагає досконалості в інших мовах програмування на основі конкретних функцій, які виконує кожна з них. Реагувати та Машинопис це мови на основі Javascript, які широко використовуються Tesla для розробки інтерфейсу. Крім того, рубін, CSS та PHP потрібні на посадах, пов’язаних із веб-розробкою. Нарешті, SQL використовується у великих масштабах для управління базою даних. Усі ці мови об’єднуються разом, щоб створити продукти, які викликають у нас жах.
Висновок
Таким чином, незважаючи на те, що Tesla є однією з найбільших технологічних компаній у світі, компанія покладається переважно на старошкільні мови програмування. Python, C і C++ є обов’язковими, якщо ви хочете працювати в таких компаніях, як Tesla, SpaceX, Nvidia, Intel тощо. Однак у Tesla працює понад 300 інженерів із різноманітними навичками, які об’єднуються для створення складних мережі для запуску своїх продуктів. Ваш вибір мови програмування для вивчення повинен повністю залежати від типу функції, яку ви хочете виконувати. Вибирайте з розумом!
залишити коментар