بسم الله الرحمن الرحیم...
سلام...
میگویم...
جاوا عجب زبان گندی است! چقدر دنگ و فنگ دارد...
مدتها است دارم به صورت نیمهحرفهای/غیرحرفهای از آن استفاده میکنم ولی اصلا هرگز با آن راحت نبودهام و در آن پیشرفت خوبی نداشتهام...
نوشتن برنامه با آن بسیار کند است...
زبان خوبی نیست... سخت است... پیچیده است (پیچیدگی الکی)... نمیتوان با آن هم سطح بالا برنامه نوشت و هم سطح پایین (کلا اصلا سطح بالا نیست)... هر بار باید کلی تنظیمات را خودت شخصا به خاطر بسپاری و تنظیم کنی و متغیرها و کلاسها و متدها را خودت با هم چفت و جور کنی (یکی استاتیک باشد یکی نباشد... یک جا متد ایکوال استفاده شود یک جا مساوی گذاشتن کافی است... یک جا فور استفاده کنی یک جا لاندا... یک جا پرایوت یک جا پابلیک... یک جا مپ یک جا آرایه یک جا اینام یک جا کلاس.. حواست باید به همهی اینها باشد و هیچ فرآیند خودکاری مسئول مدیریت اینها نیست.) کلا خاری است در گلو...
عمر آدم را میبلعد!
کاش از اول رفته بودم سراغ یه راه راحتتر... مثل پایتون... (البته من شناختی نسبت به آن ندارم... صرفا از روی دیدگاه دیگران دارم قضاوت میکنم...)
ادیتورش هم بد غلق است...
من از نت بینز استفاده میکنم...
خیلی کند است. من با همین رایانه زمانی که بسیار پسرفتهتر بود ویژوال بیسیک کار میکردم مثل باقلوا کار میکرد و تغییرات سوئینگ را میفهمید و اعمال میکرد.... خیلی آسانتر بود...
تنظیمات زیادی هم دارد... که آدم مبتدی را گیج میکند... خوب هم طراحی نشده...
(داشتن تنظیمات زیاد حسن است... ولی باید طراح بهگونهای آن را قرار دهد که هم مبتدی بهترین استفاده را از آن نرمافزار ببرد و هم اگر به تدریج حرفهای شد بتواند به جزئیات بیشتر دسترسی داشته باشد.)
کاش یک زبان برنامهنویسی بود که میشد با آن از سطح بالا به سطح پایین آمد و دوباره اگر نیاز بود به سطح بالا برگشت...
کاش یک زبان بود که هر جا میخواستی میگفتی از اینجا تا انجا میخواهم تخصصی در فلان حوزه فعالیت کنم و خود به خود تمام متغیرها را مثلا double میگرفت و کلاسها را فلان و بهمان...
مثلا وارد فعالیت یک کتابخانه که میشدی تو را میبرد به محیط آن کتابخانه که تخصصیسازی شده بود...
نمیدانم دوستان با زبانهای تخصصیسازی شده کار کردهاند یا نه؟ (بیشترشان هم از سی پلاس پلاس گرفته شدهاند.) من برای کارهای اقتصادی و نیز برای کارهای مهندسی الکترونیک با اینها کار کردهام... فوووووووووقالعادهاند... اری که اینجا باید بزنی تو سر و کلهی خودت و یک ماهه انجام دهی آنجا نیمروزه (!!!) انجام میشود!
من زمانی که میخواستم جاوا را انتخاب کنم مقداری به:
- سرعت زبان جاوا
- و همهجایی بودن آن
- و کتابخانههای زیاد آن
فکر کردم که به سوی آن آمدم...
غافل از این که مهمترین چیزی که از من گرفت و میگیرد عمرم است! و این ارزشش از بقیه بیشتر است.
- اکنون فهمیدهام سرعت اجرا هم زیاد مهم نیست! چون رایانهها قویتر از آن هستند که من میخواهم و این که اگر برنامه را بهتر بنویسی این کندی سرعت را جبران میکند (پایتون را دارم میگویم). و این که اصلا یک جاهایی از برنامه را (هر جا نیاز بود) میتوانی بیایی انگار با زبانهای سطح پایینتر (اسمبلی و سی مثلا که من هر دو را بلدم) بنویسی... (که البته باز هم میگویم نیاز نیست... آدم برنامه را بهتر بنویسد اصلا سرعت اجرا مطرح نیست! مگر این که کار پیچیدهای باشد در حد سرن و کارهای آب و هوا و نجوم... که دیگر اصلا در آنجا احتمالا جاوا استفاده نمیشود! ماشین مجازی نمیخواهیم آنجا!
- از سوی دیگر همهجا استفاده شدن هم انگار مهم نیست... من این برنامه را تنها روی رایانهام اجرا میکنم... اصلا اکنون که دارند با اندروید کار میکنند این جاوا را انگار قبول نمیکند و یکی میگفت با سی و پایتون هم میتوانند برنامه بنویسند و روی اندروید اجرا کنند!
- میماند کتابخانه.... که کتابخانههای زبانهای دیگر هم زیاد هستند (سی و بیسیک مثلا) و کتابخانهی پایتون گویا با سرعت زیادی در حال گسترش است... چون زبان آسانی است و مردم به آن روی میآورند و برایش کتابخانه گسترش میدهند...
دیگر چه میماند؟
من ماندهام و این چاه ویل... که همینجور در آن عمر میریزی و ثمر نمیدهد یا دیر ثمر میدهد...
--------------------------------------------
پرسش: یادگیری پایتون و دم و دستگاهش چقدر زمان میبرد؟
(البته من اکنون برنامههایم را روی جاوا نوشتهام... نمیتوانم اینها را به آن منتقل کنم... با چند تا کتابخانه اجین شدهام اینجا... مانند دربی و htmlunit و poi... آنجا باید بروم دوباره یک ماه بگذارم برای نوشتن همینها و آشنایی با محیط و آشنایی با کتابخانههای مشابه...)
--------------------------------------------
البته یک سری از این دنگ و فنگها که نام بردم در پایتون هم هست انگار... پس چرا میگویند عمر برنامهنویس را کمتر هدر میدهد؟؟؟؟ - کاش یک زبان برنامهنویسی درست و حسابی اختراع کنند. این ابزارها واقعا پسرفته و خجالتآور است. اینها پیچیدگیهای زیادی دارند که نشان میدهد داخلشان پیچیدگی کمی دارند! باید داخلش را اینقدر پیشرفته میساختند که پیچیدگی و سختی را از برنامهنویس برمیداشت...
ببینید... (منظورم دقیقا از لزوم اختراع یک زبان بهتر چیست دقیقا؟) من میرم بقالی میگویم آقا دو تا ماست کاله بده... نمیروم بگویم آقای بقال که ۳۲ سال داری، برو درب یخچال را با دست راست باز کن و با پنج گام به سوی من بیا و اسکناسها را از من تحویل بگیر و و و این پیشفرضها همه باید در کتابخانهی بقال وجود داشته باشد!
من میروم پیادهروی نمیگویم مفصل زانوی سمت راست را بیست درجه میچرخانم و عضلهی ساق را سفت میکنم و انگشتان را خم میکنم... فقط میروم پیادهروی... همین که میگویم اکنون داخل کتابخانهی پیادهروی هستم «پیشفرضها» تغییر میکند. داخل «فضای ذهنی» من مفاهیم مرتبط با آن میآید. دقت کنیم که من تنها از متدهای خاص و به کار گیری آنها صحبت نمیکنم... من میگویم کلا فضای ذهنی عوض میشود هنگامی که میخواهم با این کتابخانه کار کنم. خیلی از جزئیات را نمیگویم. حتی اگر با کسی بخواهم صحبت کنم. تنها میگویم نیم ساعت دارم میروم پیادهروی خیابان ولیعصر(عج). همین. او خودش میفهمد همه چیز را.
منظورم از فضای ذهنی دقیقا مانند آن زبانهای تخصصیسازی شده است! دوستانی که با زبانهای تخصصیسازی شده کار کردهاند میدانند که یک باره کار چقدر آسان میشود!!! از یک صدم هم کمتر میشود! فوووووووووقالعاده میشود همه چیز! منظور این است. که مثلا من با جاوا که دارم کار میکنم اگر رفتم در حیطه اقتصاد خود به خود فضا بشود فضای آنجا. (نه صرفا استفاده از چند تا متد و کلاس!) مثلا بگویم از خط فلان تا بهمان از کد برنامههایم (یا مثلا فلان فایل از برنامههایم) در محیط تخصصیسازی شده (شبیه متلب یا شبیه زبان میکروکنترلرها) است.
موضوع دیگر هم این که... باید زبان برنامهنویسی پیشفرضهای منعطف داشته باشد... مثلا هر متغیری را خود به خود double بگیرد تا زمانی که برنامهنویس آن را تعریف کند.
قابلیت دیگری که باید داشته باشد این است که بتواند مقداری حدس بزند... که اینجا که متغیر نوشته شده گونهاش String است.
به هر حال... این عمر ما است که دارد گرفته میشود... و امیدوارم ابزارهای پیشرفتهتر و بهتری در آینده خلق شوند.