Здравствуйте. Помогите с выбором языков для проекта и прочей мудростью.
Сразу хочу предупредить что у меня мало опыта и из знаний только неплохое понимание C++, так что в любом случае придётся мне поработать как следует. А список требований местами противоречив из за нехватки опыта.
Хочется сделать для себя блокнот с несколькими удобными функциями и хочется всего и сразу:
Планируется что в нём должна поддерживаться графика (диаграммы, необычные графические элементы управления) и возможно навесные модули (например для формул и картинок - возможно попытаюсь всё сделать модульным).
А со временем оно может (почти обязательно) превратиться в сайт с социальными функциями. А что бы никто не тырил чужие личные заметки планируется приделать оригинальную и мощную криптозащиту (включая внутреннюю защиту системы).
Хочется что бы это был сайт, но все функции дублировались в клиенте для оффлайн режима, всё было защищено, и на одном языке для сайта и клиента, и что бы модули подключались. И я даже не могу решить стоит ли делать клиент для оффлайна, или в целях безопасности сделать всё чисто сетевым.
Ну так вот вопрос в том, какой язык (языки) для подобного выбрать?
Я в теории знаю С++, но делать на нём сайты стрёмно, а переписывать код заново будет очень плохо. Можно придумать что нибудь с клиентом и сервером.
Python - говорят на нём быстро можно работать, к тому же на нём уже есть похожий проект блокнот ZIM, который можно допилить до нужной кондиции. Но опять же сайты на нём не делаются вроде. Ещё питон меня пугает тем, что я как то пытался скомпилировать программку на нём: скачал питон, скачал пару гуев, скачал ещё какие-то навесные пакеты - ничерта не заработало "из коробки" кроме консоли питона.
Можно сразу писать на PHP, но там плохо с безопасностью и придётся делать отдельный клиент для оффлайна.
Java - вроде подходит, но как то не нравится она мне по определению и проблем с установкой тоже хватает, и безопасность не на высоте.
Можно сразу писать на PHP, но там плохо с безопасностью
В проблемах с безопасностью виноват не PHP, а прокладка между креслом и компьютером. И это к любому языку применимо.
По теме: если в виде веб-приложения хотите, то вам так и так скорее всего яваскрипт понадобится. Если не хотите учить несколько языков, то можете и бэкенд тоже на яваскрипте писать (node.js)