اپل مدتهاست که نمیتواند ویژگیهای محصولاتش را پیش از عرضهی رسمی و نهایی محفوظ نگه دارد. دلیل ناتوانی اپل در این زمینه چیست و چه کسانی در پشت پردهی این بازی قرار دارند؟ وبسایت Business Insider اخیرا مصاحبهای با یکی از این لو دهندگان معروف انجام داده. او سردبیر وبسایت Nowhereelse.fr است و حرفهای زیادی برای گفتن دارد. در ادامه با دیجیکالا مگ همراه باشید.
اپل، به واسطهی نیاز به قطعات مختلف در محصولاتش، به همکاری با کارخانههای متعددی برای تولید آیفون نیازمند است. همین مساله به بزرگترین دلایل درز اطلاعات حساس مربوط به محصولات اپل تبدیل شده. در این میان بخش مهمی از اطلاعاتی که درز پیدا میکند، بهصورت تصویری هم منتشر میشود. اینجاست که پای یکی از شناختهشدهترین کسانی که طی سالهای اخیر جزییات محصولات اپل را لو داده، به میان آورده میشود. او «استیو همرستافر» (Steve Hemmerstoffer)، مردی فرانسوی و سردبیر سایت Nowhereelse.fr است. او اخیرا حساب توییتر OnLeaks@ را هم به همین منظور راهاندازی کرده و در آن هم به پوشش اخبار و اطلاعات مرتبط میپردازد. برای مثال او سال گذشته و پیش از عرضهی آیفون SE، جزئیاتی بسیار دقیق در رابطه با این محصول و همینطور آیپد پرو در این حساب توییتر منتشر کرده بود. البته او بارها تصاویر و اطلاعات دقیقی هم از تلفنهای اندرویدی مهم بازار را پیش از معرفی و عرضه، لو داده است.
در ادامه مصاحبهای که سایت بیزنس اینسایدر (Business Insider) با او انجام داده را بخوانید. در این مصاحبه او در مورد اینکه چگونه اطلاعات را جمعآوری، حقیقتیابی و منتشر میکند مورد سوال قرار گرفته. همچنین برخی از مهمترین افشاگریهای او در خصوص محصولات مختلف نیز در انتهای مطلب در دسترس است.
من سردبیر و نویسندهی Nowhereelse.fr هستم و این، شغل تماموقت من در ده سال اخیر بوده است. برای سالها، من از طریق بلاگها، سایتهای خبری، تالارهای گفتگو و شبکههای اجتماعی، به کشف محصولات و تایید اصالت شایعات و افشاگری در خصوص محصولات شرکتهای مختلف پرداختهام. سایت من به واسطهی کشف و لو دادن محصولات شرکتهای مختلف، بهسرعت مشهور شده است. البته تمامی مطالب سایتم به زبان فرانسوی نوشته شدهاند که مطالعهی آن را برای بسیاری از بازدیدکنندگان مشکل میکرد؛ به همین دلیل من سرانجام اوایل سال ۲۰۱۵ تصمیم گرفتم حساب توییتر OnLeaks را هم راهاندازی کنم تا برخی افشاگریهای اختصاصی را به زبان انگلیسی و از طریق آن انجام دهم.
از تکنیکهای متعددی برای تایید اصالت محصولات استفاده میشود؛ اما تجربه و عقلانیت همیشه بهترین ابزارها برای کشف واقعیت بودهاند. من روزانه دو تا سه ساعت وقت را به این کار اختصاص میدهم. ساعتها در سایتها، تالارها و شبکههای اجتماعی مختلف به دنبال جزییات بیشتر در مورد محصولات مختلف، اختصاص میدهم.
من بهخوبی میدانم که چطور به لو دهندگان در سایت «ویبو» (Weibo؛ نسخهی چینی توییتر) و سایتها و تالارهای شناختهشده در این حوزه، اعتماد کنم. بنابراین حالا با توجه به منبع و چیزی که مشاهده میکنم تقریبا با یک نگاه میتوانم اصل یا جعلی بودن آن را تشخیص دهم.
معمولا پیش میآید که افرادی، تصویری را در اینترنت پیدا کرده و با تصور اینکه کشف عظیمی کردهاند، بدون در نظر گرفتن اصالت یا جعلی بودن آن، نسبت به انتشارش اقدام میکنند. اما یکی از سادهترین روشها برای بررسی اولیهی تصویر کشفشده، جستوجوی آن در سرویس جستوجوی تصاویر گوگل است. این روشی موثر است که با کمک آن نهتنها جعلی بودن تصاویر مشخص میشود، بلکه منبع اصلی آن هم کشف شده و قابل بررسی خواهد بود. به شخصه این مرحله را حتما لحاظ میکنم تا بتوانم بهسرعت منبع اصلی عکسها را پیدا کنم و بفهمم آن تصویر، اولین بار کجا و تحت چه عنوانی منتشر شده است.
روندی که برای کشف اصل یا جعل بودن تصاویر به کار میبرم، بهطور خلاصه به شرح زیر است:
۱- ابتدا عقل سلیم را به کار میگیرم و احتمال اصل بودن عکس را از این منظر، بررسی میکنم.
۲- سپس با کمک قابلیت جستوجوی تصاویر گوگل، ساختگی یا واقعی بودن تصویر را چک میکنم.
۳- درنهایت، با بررسی منابع اولیهای که نسبت به انتشار تصویر مربوطه اقدام کردهاند، اصالت هر یک از تصاویر را بهطور دقیق بررسی میکنم.
بله؛ من این را توییت کردم چراکه از مشاهدهی تصاویر جعلیای که به عنوان نمونهی اصل منتشر میکنند، به ستوه آمدهام. بسیاری از آنها، غیرمعقولترین افشاگریها را که از بیاساسترین شایعات نشات گرفته، بدون کوچکترین بررسی و تاییدی، نشر میدهند.
واقعیت این است که این لو دادنها، ترافیک و توجه بسیاری به سمت سایتها و حسابهای توییتر جلب میکند. به همین خاطر انتشار سریع این افشاگریها وسوسهانگیز است. اما انتشار اطلاعات بیاساس، اعتماد کاربران را به این سایتها کم میکند و باعث میشود به افشاگریهای واقعی هم توجه و اعتماد کمتری داشته باشند.
در بسیاری از مواقع، افرادی که این تصاویر را منتشر میکنند بدون توجه به عواقب آن و تنها برای جلبتوجه و ایجاد بحث در تالارهای گفتوگو یا شبکههای اجتماعی، نسبت به انتشارشان اقدام میکنند.
در برخی مواقع هم کارگران این کارخانهها از سختیهای کارشان در تالارهای گفتگو صحبت میکنند تا از همکارانشان در مورد روش کارشان سوال کنند و کمک بخواهند. برای توضیح بهتر مشکلات، آنها در همین بحثها تصاویری را منتشر میکنند که ممکن است یک قطعه یا مجموعهای از قطعات یک محصول، در آن دیده شود.
در اینجا باید اشاره کنم برخلاف چیزی که به نظر میرسد، اغلب تصاویری که در Weibo منتشر میشوند، در واقع قبل از آن در جایی دیگر منتشر شده و سپس به این شبکهی اجتماعی میرسند. در واقع Weibo یکی از مهمترین بسترها برای یافتن تصاویر و اطلاعات مهم در خصوص محصولات شرکتهای مختلف است؛ اما بسیاری از محتوای منتشر شده در این شبکهی اجتماعی، در واقع پیشتر در جایی دیگر و بهوسیلهی شخص یا اشخاصی دیگر منتشر شده است.
این سوالی بسیار حساس است. من ترجیح میدهد که توضیحی در این رابطه ندهم.
بله. بهندرت؛ اما پیش آمده است. البته هیچیک آنها از تلاش برای یک تهدید ایمیلی یا تماس از سوی یک وکیل جلوتر نرفته است.
من قادر به توضیح این پدیده نیستم؛ اینکه چرا نقشههای شماتیک محصولات بیشتر و بیشتر شده حتما علت خاصی دارد که من از آن آگاه نیستم.
در حال حاضر پیمانکارانی که با اپل روی تامین قطعات Apple Watch همکاری میکنند، شناختهشده نیستند. بنابراین این مساله یافتن منابع مرتبط با ساعت اپل را در مقایسه با آیفون و سایر محصولات این شرکت، سخت کرده است.
دلیل این مساله، افزایش بیقاعدگیها در روند انتخاب کارخانهها و مقاطعهکاران شرکتهای تولیدکننده است. البته مساله به شرایطی که منابع این اطلاعات دارند نیز وابسته است. کارکنانی که اخراج شده یا کار خود را رها کردهاند، تامینکنندهای که از سوی شرکت تهدید شده، قطعهسازی که کارش را متوقف کرده و غیره؛ همچنین ممکن است دلایل دیگری هم وجود داشته باشد که بر اساس آنها، یک منبع نخواهد یا نتواند مثل قبل اقدام به درز دادن اطلاعات کند.
شما با انتشار تصاویری که در تالارهای گفتگوی چینی کشف پیدا میکنید، به یک افشاگر در این حوزه تبدیل نمیشوید. یک افشاگر حرفهای، منابع اختصاصی خودش را در این صنعت دارد.
پیش از پاسخ به این سوال، میخواهم تاکید کنم که شما با انتشار تصاویری که در تالارهای گفتگوی چینی کشف میکنید، تبدیل به یک افشاگر در این حوزه نمیشوید. هر کسی میتواند با جستوجوی کلیدواژههای خاصی در Weibo، تصاویری را پیدا کرده و بدون ذکر منبع به انتشار آنها بپردازد. اما به نظر من یک افشاگر حرفهای، کسی است که منابع خاص خودش را در این صنایع داشته باشد.
برای مثال از میان کسانی که تصاویر قطعات مختلف را به من ارایه میکنند، کارمندان اپراتورهای موبایل تصاویر رندر شده و قطعهسازان، تصاویر و نقشههای شماتیک را برای من میفرستند؛ و من به قدر کافی شانس داشتهام که با تعداد زیادی از افراد قابلاعتماد، ارتباط داشته باشم. خوشبختانه من از ابتدا نسبت به ایجاد این شبکهی ارتباطی به عنوان یک پروژهی بلندمدت اندیشیده و برای آن انرژی صرف کردهام.
اما یکی از شناختهشدهترین و قابلاعتمادترین افراد در حوزه افشاگری «ایوان بلس» (Evan Blass) است که با نام کاربری evleaks@ در توییتر فعال است. بدون تردید ایوان از معتبرترین افراد در این بازی بهحساب میآید. ما پیش از این اختلافاتی با هم داشتیم، اما سرانجام هر دو به تمام بحثهای احمقانهی پیشین پایان دادیم.
وردپرس یگانه از محبوب ترین و قدرتمندترین سیستم های مدیریت محتوای گیتی می باشد که به صورت اوپن سورس منتشر شده است یعنی هرکسی میتواند آن را توسعه داده و بنا به بیچارگی خویش کاربرد کند.
وردپرس برای دو خاصیت منحصر بفردش، محبوبیت فوقانی مکشوف است: ۱. سادگی شغل با آن. ۲. ساختار بهینه برای موتورهای جستجو و اصطلاحاً سئوی بالا.
البته بحث سئو، صرفاً به سیستم مدیریت محتوا اندک نمیشود و نحوه ی اداره سایت توسط مدیریت آن نیز بر سئو مؤثر است. در ادامه به بررسی بعضی ابعاد سیستم مدیریت محتوای محبوب وردپرس می پردازیم:
انعطاف پذیری سیستم
وردپرس، یکی از منعطف ترین سیستم های مدیریت محتوای دانشمند است که افراد با دست کم آشنایی با کد، خواهند توانست آن را برای کاربری دلخواه خود ادیت کنند. در ضمن تگ های بسیار پرکاربرد وردپرس، این امکان را به گسترش دهندگان و برنامه نویسان وب می دهد لغایت هر نوع سیستم دلخواهی را بر اساس ی طراحی سایت فروشگاهی وردپرس ایجاد نمایند اما در نهایت هوش طراحی خواهد بود که تعیین کننده ی به صرفه بودن این گسترش است.
در هر صورت، وردپرس بستری را حاضر کرده است که در آن میتوان وبگاههای متفاوتی داشت از یک تارنگار ساده الی یک پرتال سازمانی گسترده!
تنوع قالب ها
نکته ی سایر در ارتباط با وردپرس، تنوع زیاد بالای قالبهای آن است. این تنوع مایه شده برای هر گونه سلیقه ای قالب دلخواه هستی داشته باشد و البته برای هر نوع فعالیتی… .
همچنین طراحان زیادی هستند که می توانند برای شما قالب اختصاصی وردپرس طراحی نموده و نیازهای شما را تأمین نمایند. نرمش بالای وردپرس باعث شده تا قالبهای بسیار زیبایی برای آن طراحی شود.
افزونه ها و پلاگین ها
افزونه (پلاگین) ها در واقع بسته های نرم افزاری هستند که امکان خاصی را به سیستم می افزایند. به لطف اوپن سورس بودن وردپرس، افزونه های رایگان و تجاری بسیاری وجود دارد که هر یک امکان خاصی را به وردپرس می افزایند و آن را کامل و کامل تر می کنند. مثلاً افزونه هایی برای ساخت فروشگاه، افزونه هایی برای اشتراک گذاری مطالب در شبکه های اجتماعی و … .
وردپرس کجاها بدرد میخورد؟
این سئوال از اهمیت زیاد فوقانی برخوردار است، به واقعیت چه جاهایی باید از وردپرس سهم گرفت؟ در پذیرش به این سئوال باید گفت: همه جا اما!
با وردپرس می طاقت هر گونه وب سایتی طراحی نمود و نرمش پذیری آن، جلوی هر نوع محدودیتی را گرفته است ولی دو نکته وجود دارد: ۱. اینکه این گسترش برای طراحی سایت جدید چقدر هزینه دارد و ۲. اینکه موضوع فعالیت سایت جدید چیست؟
۱. برخی مواقع برای ساخت یک فروشگاه بر اساس وردپرس احتیاج به نزدیک ۷۰۰ هزار تومان خرج است در حالیکه با اسکریپت های مخصوص فروشگاه، همین خرج به ۲۰۰ لغایت ۳۰۰ هزار تومان (البته بسته به مورد اغلب یا کمتر) تفریق می یابد. یعنی دقیقاً برخی جاها توسعه وردپرس خرج ی بالا و غیر منطقی خواهد داشت.
۲. وردپرس یک سیستم اوپن سورس است لذا هم توسعه دهنگان خوب و هم گسترش دهندگان بد به سورس آن دسترسی دارند. یعنی هم طراحان وب و هم هکر ها! این باعث می شود هکرها به حفره های امنیتی آن آشنایی کامل داشته باشند از این جهت ریسک هک شدن سایت طراحی شده با وردپرس بالاتر می رود. با این حساب، شاید طراحی یک سیستم مالی مبتنی بر وب بر اساس ی وردپرس، انتخاب چندان مناسبی نباشد.
با تمام این تفاسیر، سیستم مدیریت محتوای وردپرس، در حال حاضر احد از برترین سیستم های مدیریت محتوای وب سایت (و در بسیاری رنکینگها، برترین) به شمار می رود و برگزیدن نخست بسیاری از وبمسترها، همین وردپرس است.
بهترین زبانهای برنامهنویسی لیستی برای هدفگذاری آینده است. برای برداشتن اولین گام در برنامهنویسی حرفهای، باید بدانید که چه راههایی برای رسیدن به مقصود دارید. انواع زبانهای برنامه نویسی همین راهها هستند. به یاد داشته باشید لزوماً بهترین راهها٬ کوتاهترین آن نیست. برای موفقیت در دنیای بزرگ برنامهنویسی باید ابتدا زبانها، پتانسیل، حوزه کاربرد، امنیت، کارایی و کاربردی بودن آنها را بشناسید. باید بدانید که هر زبان به چهکاری میآید و چه تواناییهایی دارد؟ از این طریق است که میتوانید آینده و جایگاه آن زبان را در صنعت IT پیشبینی کنید؛ چراکه آینده آن زبان میتواند آینده شما باشد.
فرض کنید از میان زبانهای انسانی زبان چینی را یاد گرفتید. میتوانید با بیش از یک میلیارد چینیزبان صحبت کنید. کمتر زبانی چنین پتانسیلی در خود دارد؟ ولی آیا شما با چینیها، سروکار دارید؟ بهترین زبانهای برنامهنویسی هم به همین نحو از برترینها قرار میگیرند. شاخصهایی وجود دارد که بدون تعصب، نشان میدهد یکزبان برنامهنویسی چرا و چگونه از دیگر زبانها برتر است؟
لیست فنی برترین زبانهای امروز دنیای فناوری اطلاعات، با بررسی دقیق و علمی جایگاه فعلی و سرنوشت آنها در دنیای تکنولوژی، به شما کمک میکند تا اولین گام خود را درست و محکم بردارید.
زبانهای برنامهنویسی شاخصهایی دارند که توانایی هرکدام از آنها در این خصایص، جایگاه آنها را در لیست بهترین زبانهای برنامهنویسی تعیین میکند. این شاخصها عبارتاند از:
ما به سرزمین هر زبان سفر میکنیم تا اهداف اصلی از خلق آن را بشناسیم. قدرتها و ضعف زبانهای برنامهنویسی را بررسی میکنیم. نگاهی به نمودارهای معتبر و مفید TIOBE و گزارش Octoverse گیتهاب میکنیم تا محبوبیت هر زبان در دنیای فناوری اطلاعات را بسنجیم. به نمودار جذاب حقوق و دستمزدهای سایت Indeed و StackOverflow مراجعه میکنیم و وضعیت درآمد زبانهای برنامهنویسی را مقایسه میکنیم. با استفاده از ابزار Google Trends وضعیت تقاضای آنها را طی بازه زمانی پنج سال گذشته بررسی میکنیم. قسمتی از شیوه کدنویسی زبان موردنظر را میبینیم تا باحال و هوای آن زبان، آشنا شویم.
در انتهای سفرمان به شما پیشنهاد میکنم، مطلب زبانهای برنامه نویسی که آینده را تغییر خواهند داد نیز مطالعه کنید. زبانهایی که به سرعت بازار آینده برنامهنویسی را تسخیر میکنند و هدف گذاری برای یادگیری آنها یک سرمایه گذاری عاقلانه و پرسود است.
سایت TIOBE خطکش محبوبیت دنیای برنامهنویسی است. TIOBE درباره بهترین زبان برنامهنویسی یا زبانهایی که در بالای لیست پرشمارترین خطوط کدنویسی در دنیا قرار دارند، نیست. این سایت شاخصهای باکیفیتی دارد و هرماه نتایج آن بروزرسانی میشود.
شاخصهای رتبهبندی در این سایت بر اساس تعاریف زیر است:
گستردگی همکاری سایت جستجو مانند گوگل، بینگ، یاهو، ویکیپدیا، آمازون، یوتیوب و بایو اعتبار خاصی به این گزارشها میدهد.
GitHub باشگاه مبتنی بر وب برای توسعه پروژههای رایگان و تجاری است. با استفاده از سیستم کنترل گیتهاب برنامهنویسان از سراسر جهان میتوانند باهم در ارتباط باشند و در مدیریت پروژهها و توسعه آنها مشارکت داشته باشند.
ایجاد وضعیت آنلاین و رصد روند تغییرات کدها در یک پروژه، به تیم برنامهنویس پروژه، قدرت هماهنگی و مدیریت بیشتری را میدهد، این همان مزیت گیتهاب است. مزیتی که باعث شده تا ۲۴ میلیون کاربر در ۶۷ میلیون مخزن با وسعت ۳۳۷ زبان برنامهنویسی در گیتهاب مشغول فعالیت باشند. این مجموعه عظیم گیتهاب را علاقهمند به ساخت گزارشی سالیانه به نام octoverse کرده است که موضوع آن محبوبترینهای زبانهای برنامهنویسی است.
محور فعالیت سایت Indeed استخدام و کاریابی است. این سایت در سال ۲۰۱۴ وارد عرصه کاریابی اینترنتی شد و هماکنون در ۲۸ زبان و در بیش از ۶۰ کشور مشغول به فعالیت است. تعداد بازدیدکنندگان از این سایت در ماه به ۲۰۰ میلیون نفر میرسد و هرروز میلیونها نفر در آن به جستجوی فرصتهای شغلی و مطالعه روزمه افراد میپردازند.
StackOverflow برای ایرانیان عزیز و بهصورت خاص برای جامعه برنامهنویسی آن آشنا است. بهجرات میتوان گفت این سایت یک دایه مهربان برای توسعهدهندگان مبتدی است. در آن بیش از میلیونها سؤال در رشتههای مختلف برنامهنویسی مطرحشده که توسط دیگر برنامهنویسان برای آنها، راهحلهایی مناسب و آموزنده بیانشده است. این سایت در ماه پذیرای بیش از ۵۰ میلیون کاربر است و شما باکمی مشغولیت در آن احساس غربت نخواهید کرد.
فعالیت در این سایتها برای برنامه نویسان حرفهای لزوماً و بهصورت مستقیم، درآمدی ندارد؛ ولی درصد مشارکت برنامهنویسان و البته جوابهای درست آنها باعث خلق یک رزومه خودکار توسط سایت میشود. این رزومهها و گزارشها توسط جویندگان متخصصان برتر و کارآمد و محققان نیز، رصد میشود و موجب خلق فرصتهای شغلی مناسبی خواهد شد. استک اورفلو نظرسنجیهای معتبری درباره برنامههای کاربردی محبوب، عادتهای کاری برنامه نویسان و غیره نیز ارائه میدهد.
جاوا اسکریپت طبق نتایج سایت StackOverflow با کسب ۶۵ درصد رأی محبوبیت کاربران، در جایگاه نخست ایستاده است.
جاوا اسکریپت زبان جذابی است که اغلب با جاوا اشتباه گرفته میشود. اقبال برنامه نویسان و رشد سریع این زبان در یک دهه گذشته بسیار جای تأمل دارد. قابلیتهای این زبان باعث شده که بهمحض ورود شما به دنیای برنامهنویسی، با چند برنامه و نرمافزار یا صفحه وب روبهرو میشوید که با این زبان وظیفه خود را انجام میدهند.
جف اتوود Jeff Atwood معروف و محبوب دنیای برنامهنویسی و از بنیانگذاران سایت StackOverflow و Stack Exchange جمله جالبی را در مورد این زبان بیان کرده است:
هر برنامهای که بتواند به شیوه جاوا اسکریپت نوشته شود، روزی بهصورت جاوا اسکریپت نوشته خواهد شد.
حقیقتاً هم جاوا اسکریپت با روند رو به رشد فنی و افزایش محبوبیت خود، در سالهای آینده نیز رقیب سرسختی برای دیگر زبانها خواهد بود.
در میان سه زبان اول طراحی صفحات فرانت اند (FrontEnd) جاوا اسکریپت یک پای ثابت است. اگر جیکوئری (jQuery) را رقیبی برای جاوا اسکریپت بهحساب میآورید، باید بدانید، جیکوئری یک کتابخانه جاوا اسکریپتی است. فریمورکها هم گویی صفکشیدهاند تا با جاوا اسکریپت کار کنند. از Angular، React،Ember،Backbone گرفته تا دیگران که درراهاند. شما در فرانت اند با جاوا اسکریپت هستید در بکند (Backend) نیز به لطف فریمورک Node.js بهصورت در لحظه و از سمت سرور با جاوا اسکرپیت، جویای احوال کلاینتها هستید.
طبق نتایج آماری StackOverflow و به زبان ریاضی ۷۵ درصد فریمورکهای محبوب در سال ۲۰۱۷ بر پایه جاوا اسکریپت بودند. تصور کنید کسانی که به زبان جاوا اسکریپت مسلط هستند، برای انتخاب فریمورک مناسب چقدر باید نگران باشند؟
اگر میخواهید برنامه شکوهمند و جذاب خود را به شیوه وب تعاملی بسازید و در لحظه کاربران کلاینت را از مزایای برنامه خود بهرهمند کنید، جاوا اسکریپت میتواند انتخاب اول شما باشد. این را هم به یاد داشته باشید که جاوا اسکریپت دو همراه دوستداشتنی بانامهای HTML و CSS هم دارد. این سه تفنگدار تیم قدرتمندی را باهم تشکیل میدهند و در مأموریت طراحی صفحات وب یکهتازی میکنند.
در عرصه برنامههای گوشیهای همراه که امروز بازار داغی دارد، جاوا اسکریپت حامیان خوبی دارد. شما با ابزار Apache Cordova میتوانید وارد برنامه چند سکویی (Cross Platform) شوید که مبتنی بر HTML 5 هستند. اپلیکیشنهای زیبایی بسازید که به همت سه تفنگدار طراحی میشوند و جاوا اسکریپت نقش محوری در آنها دارد. با ابزار React Native و قدرت جاوا اسکریپت پا را از این فراتر بگذارید و با زیرساختهای native گوشیهای همراه ارتباط برقرار کنید تا اپلیکیشنهای مفید و قدرتمندی روانه بازار کنید.
زمانی هم که بخواهید وارد حوزه ساخت برنامههای بازی یا حتی دسکتاپی شوید فریمورک Electron در کنار شماست. بهراحتی میتوانید برنامههایی چند سکویی را با JavaScript برای انواع سیستمعاملها بسازید.
شاخص محبوبیت زبان برنامهنویسی در TIOBE
جمعبندی جاوا اسکریپت از بهترین زبانهای برنامهنویسی
بدون شک جاوا اسکریپت از درصد محبوبیت بالایی چه در زمان ما و چه در آینده برخوردار است. رقابت در رنکهای بالای حقوق و دستمزد مابین زبانهای برنامهنویسی، مخصوصاً برای زبانهای تازهوارد بسیار سخت است. همانطور که گفته شد، تنها محبوبیت یکزبان باعث نمیشود که حقوق و درآمد فوقالعاده نصیب برنامه نویسان شود.
وضعیت محبوبیت جاوا اسکریپت در پنج سال گذشته
نمونه کدنویسی در زبان جاوا اسکریپت
document.addEventListener("DOMContentLoaded", function(event) {
var e = document.getElementById("myForm");
var msg = "";
// Wait for user to click the button
e.addEventListener("change", function () {
var myColor = this.color.value;
if (myColor == "Blue") {
msg = "Just like the sky!";
} else if (myColor == "Red") {
msg = "Quite daring!";
} else if (myColor == "Green") {
msg = "Like... grass?";
}
// Output message
document.getElementById("msg").innerHTML = msg;
}, false);
});
Swift در لیست بهترین زبانهای برنامهنویسی قرار دارد. وقتی اپل در سال ۲۰۱۴ این زبان را عرضه میکرد هدفش توسعه برنامههای native برای ios یا macOS بهدور از دردسرهای پیچیده ساخت و تست بود.
درحالیکه این زبان دوران رشد خود را طی میکند ولی چون قابلیت همراهی زبان Objective-C و حتی زبان C را در خود دارد، جای پای محکمی را برای خود در برنامهنویسی سیستمعاملهای iOS یا macOS بازکرده است. بعد از یک سال از ساخت، Swift توانست در میان توسعهدهندگان رتبه یک را از نظر محبوبیت، از آن خود کند. در سال ۲۰۱۷ نیز با رتبه چهارم هنوز در میان پنج زبان محبوب دنیا جا خوش کرده است. یکی از نکات موفقیت Swift شیوه کدنویسی آن است. برخلاف Objective-C و شیوه کدنویسی خاص آن، در سویفت کدنویسی شیوهای مشابه با زبانهای همچون C یا java دارد. به همین دلیل شما و دیگر توسعهدهندگان نیز میتوانید فرصت استفاده از Swift را داشته باشید، چهبسا که به این زبان مهاجرت هم کردید.
برای استفاده از Swift اگر به سیستمعامل مکینتاش دسترسی ندارید کمی دچار صرف هزینه خواهید شد. شاید راه مناسبتر استفاده از ماشین مجازی virtual box و نصب ادیتور xcode به روی ویندوز است. روال سختی ندارد؛ ولی شاید نیاز به آزمونوخطا داشته باشید. درهرصورت اگر عزم جزم کردهاید برای آیفون برنامهنویسی کنید، میتوان گفت که هزینههای شما با موفقیتهای شما جبران خواهد شد. در بازار اپلیکیشنهای گوشی هوشمند، درآمد برنامههای iOS از برنامههای اندروید بیشتر است. البته خبرهایی هم در راه است که Swift محبوب را، در آینده نزدیک میشود در ویندوز نیز، ملاقات کرد.
شاخص محبوبیت زبان برنامهنویسی در TIOBE
جمعبندی تحلیل سویفت از بهترین زبانهای برنامهنویسی
سویفت با ظهور خود باعث جلب علاقه و توجه توسعهدهندگان بیشتری به سیستمعاملهای iOS و macOS شد. این علاقه امروز به عشق تبدیلشده تا حدی که تقاضاهای زیادی برای اجرای سویفت در سیستمعاملهای همچون ویندوز از سراسر جهان به گوش میرسد. این نویدی برای آینده بهتر برای سویفت و توسعهدهندگان سویفت است.
وضعیت محبوبیت سویفت طی پنج سال گذشته
نمونه کدنویسی در زبان سویفت
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController!.navigationBar.barTintColor = UIColor.yellow
self.navigationController!.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.black]
let navBgImage:UIImage = UIImage(named: "bg_blog_navbar_reduced.jpg")!
self.navigationController!.navigationBar.setBackgroundImage(navBgImage, for: .default)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
این مار دنیای برنامهنویسی تقریباً به همهجا، در صنعت فناوری اطلاعات سرک کشیده است و البته در خیلی از کمپانیهای بزرگ هم خوب چنبره زده است. هدف شما چه ساخت برنامههای کاربردی وب، ساخت برنامههای دسکتاپ، مدیریت سرورهای شبکه، حضور در هوش مصنوعی و یادگیری ماشین (Machine learning)، اشتراکگذاری با ابزار رسانه باشد فرقی نمیکند، با پایتون عهد اخوت ببندید. بهجرات میتوان گفت در دیگر عرصههای برنامهنویسی هم Python یار و همراه شما خواهد بود.
شرکتهای بزرگی از گوگل و ناسا گرفته تا شرکتهای انیمیشنسازی و غیره پایتون را مورداستفاده قرار میدهند. اینجاست که نتیجه هدفگذاری و برنامهریزی گیدو ون رسوم Guido van Rossum مرد هلندی خالق پایتون، تجلی پیدا میکند. اهدافی که پایتون را به این جایگاه رسانده است، عبارتاند از:
این شیوه مدیریت و هدفگذاری گیدو ون رسوم، علاوه بر موفقیت پایتون، لقب دیکتاتور خیرخواه جاویدان (Benevolent dictator for life) را نیز برایش به همراه داشته است. فریمورکهایی مانند Django و Flask مبتنی بر پایتون که در توسعه وب و اپلیکیشنهای تحت وب فعال هستند، هم بسیار محبوب و شناختهشده هستند. در زمینهٔ هوش مصنوعی و تجزیهوتحلیل اطلاعات مخصوصاً طبقهبندی دادهها، از کتابخانههای برنامهنویسی Panda و Scikit Learn که بر پایه زبان برنامهنویسی پایتون هستند، نباید غافل شد.
با گسترش حوزه فعالیت پایتون، مسیرهای شغلی هم متفاوت خواهد بود. از یکسو فرصتهای زیادی در اختیار شما میگذارد و از سوی دیگر در محیطهای گاه متفاوت، باید به دنبال آینده شغلی خود باشید. یک مطلب مسلم این است که پایتون برای توسعهدهندگان مبتدی یک فرصت ایدهآل است؛ چراکه زبان سطح بالایی به شمار میرود و خواندن و درک آن، آسان است.
شاخص محبوبیت زبان برنامهنویسی در TIOBE
جمعبندی تحلیل زبان پایتون از بهترین زبانهای برنامهنویسی
پایتون انتخاب مناسبی برای حرفهایها، آماتورها، علاقهمندان و حتی کودکان است. بهترین گام برای شروع و سریعترین گام برای جذب در بازار کار و بزرگترین گام برای رسیدن به موفقیت شغلی است. پایتون نیاز به تبلیغ ندارد نمودارها به قدرت این زبان سطح بالا معترفاند.
وضعیت محبوبیت پایتون طی پنج سال گذشته
نمونه کدنویسی در زبان پایتون
import itertools
def iter_primes():
# an iterator of all numbers between 2 and +infinity
numbers = itertools.count(2)
# generate primes forever
while True:
# get the first number from the iterator (always a prime)
prime = numbers.next()
yield prime
# this code iteratively builds up a chain of
# filters...slightly tricky, but ponder it a bit
numbers = itertools.ifilter(prime.__rmod__, numbers)
for p in iter_primes():
if p > 1000:
break
print p
در محبوبیت جاوا نمیتوان شک کرد. در لیست ۵۰۰ شرکت برتر جهان که نشریه معتبر و مطرح تجارت آمریکا به نام فرچون Fortune هرساله تهیه میکند، مشتریان جاوا را بهوضوح میتوان پیدا کرد. ۹۰ درصد شرکتهای لیست فرچون، مفهوم شعار معروف جاوا یکبار بنویسید، همهجا اجرا کنید؛ را تجربه کردند و از جاوا استفاده میکنند. یادگرفتن و تسلط بر جاوا علاوه بر فرصتهای شغلی بسیار عالی در همه جای جهان، به شما فرصت آشنایی با ماشین مجازی معروف جاوا JVM را میدهد. کار کردن با این ماشین یعنی شما یک توسعهدهنده قدرتمند چند سکویی هستید.
جاوا زبانی است که هنگامیکه تصمیم میگیرید توسعهدهنده بکاند شوید یا مدیریت big data را انجام دهید یا برای گوشیهای اندروید برنامهنویسی کنید، به کار شما میآید. حوزه کار جاوا بسیار گسترده است. فرض کنید از یک سیستم کامپیوتری توکار استفاده میکنید. منظور رایانه شما نیست؛ بلکه سیستمهای میکروپروسسوری است که بهطور روزمره با آن سروکار دارید. از آنهایی که در دستگاههای خودپرداز بانکها هستند تا درونگوشی همراه یا حتی ماوس شما و هزاران جای دیگر. با جاوا میتوانید برای این قبیل سیستمهای جاسازیشده درون سیستمهای بزرگتر که به Embedded System معروف هستند، برنامهنویسی کنید. با تکنولوژی رو به رشد میکروپروسسورها و استفاده آن در همهجا آیا برنامه نویسان جاوا دچار افت تقاضای کار میشوند؟
جاوا هماکنون هم از مرسومترین زبانهای برنامهنویسی است؛ اگرچه تا حدودی کند است، البته نسبت به زبانهای کامپایلری؛ ولی جذابیتهای جاوا بهقدری است که نه در دهه آینده و نه حتی فراتر از آن هیچ جا نخواهد رفت و به فعالیت موفق خود ادامه میدهد.
با این گستره موقعیت و فرصت شغلی انتخاب جاوا، باوجود محبوبیت بیشتر زبانهای دیگر، در لیست بهترین زبانهای برنامهنویسی، کار خوبی است. شاید در ابتدا JAVA برای شما سخت و طاقتفرسا باشد ولی باگذشت زمان این سختی به لذت خوردن یک فنجان قهوه تبدیل میشود.
جمعبندی تحلیل زبان جاوا در لیست بهترین زبانهای برنامهنویسی
جاوا جایی برای صحبت نمیگذارد. جاوا قدرتمند، جذاب و پردرآمد است. با یادگیری جاوا در ایران به پروژههای بزرگ وارد میشوید و با درک JAVA بهراحتی میتوانید به زبانهای دیگر هم سری بزنید و موفق باشید.
وضعیت محبوبیت جاوا در طی پنج سال گذشته
نمونه کدنویسی در زبان جاوا
public class StandardDeviation {
public static void main(String[] args) {
double[] numArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
double SD = calculateSD(numArray);
System.out.format("Standard Deviation = %.6f", SD);
}
public static double calculateSD(double numArray[]) {
double sum = 0.0, standardDeviation = 0.0;
for(double num : numArray) {
sum += num;
}
double mean = sum / 10;
for(double num: numArray) {
standardDeviation += Math.pow(num - mean, 2);
}
return Math.sqrt(standardDeviation / 10);
}
چه کسی این زبان کارآمد و منعطف را نمیشناسد. سی پلاس پلاس (++C) هنوز هم محبوب است و از سرتاسر جهان متقاضی دارد. باوجوداینکه از سال حضور آن در ۱۹۸۵ تابهحال چند دهه از عمر این زبان سطح میانی گذشته است، ولی به خاطر اطمینان از عملکرد درست و گستره کاربرد آن، هنوز هم در میان زبانهای تجاری مطرح و برتر خوش میدرخشد.
زبان سی++ شهرت خود را مدیون موفقیت در کارزارهای بزرگ در شرکتهای مانند مایکروسافت، اوراکل، پیپال و ادوبی است. برای یکزبان سطح میانی رزومه بسیار خوبی است، زبانی که همانند تجربه یادگیری یک خودروی دو دیفرانسیل به شما جرات میدهد تا هر جا، زبانهای دیگر برنامهنویسی چه سطح بالا و چه سطح پایین حرکت میکنند، به حرکت بپردازید. شاید بخواهید یک برنامه دسکتاپ با کارایی بالا بسازید یا برای مدیریت حافظه سختافزار کدنویسی کنید، پیشنهاد ما به شما سی++ است.
شاخص محبوبیت زبان برنامهنویسی در TIOBE
جمعبندی تحلیل زبان سی++ از بهترین زبانهای برنامهنویسی
سی++ با گذر زمان عرصه را بهدیگر زبانها واگذار نکرده است و میتوان گفت هر جا زبان دیگری درمانده میشود زبان سی++ راه را ادامه میدهد. اگر این زبان را انتخاب کنید از حقوق و دستمزد آن پشیمان نخواهید شد.
وضعیت محبوبیت سی++ در طی پنج سال گذشته
نمونه کدنویسی در زبان سی++ از بهترین زبانهای برنامهنویسی
main()
{
int n,m,i;
float f1=1,f2=1;
cout<<"In Barname Javabe Taghsiam (A!+B!)/(A!*B!) Ra Baraye Shoma Hesab Mikonad"<<endl;
cout<<"Lotfan Adade Avval Ra vared Konid"<<endl;
cin>>n;
cout<<"Lotfan Adade Dovvom Ra vared Konid"<<endl;
cin>>m;
for(i=1;i<=n;i++)
f1=f1*i;
for(i=1;i<=m;i++)
{
f2=f2*i;
}
cout<<"javabe"<<"("<<f1<<"+"<<f2<<")"<<"taghsim bar"<<"("<<f1<<"*"<<f2<<")"<<"mishavad"<<(f1+f2)/(f1*f2);
}
یاقوت زیبای دنیای برنامهنویسی که در سال ۱۹۹۳ به دنیا معرفی شد، حالا از محبوبترین زبانها در نزد توسعهدهندگان است. همانطور که ماتسوموتو خالق ژاپنی آن به دوستی و مرام آن علاقهمند بود شعارروبی نیز، بهترین دوست برنامهنویس (a programmer’s best friend)، انتخاب شد.
ماتسموتو هدفگذاری کرده بود که روند توسعه روبی مابین دو قطب، سادگی در نگارش و قدرتمند در کارایی حرکت کند. همین توجه به نگارش تمیز و کدنویسی روان گاهی روبی را در سرعت، از دیگر نامزدان لیست بهترین زبانهای برنامهنویسی، عقب میاندازد ولی باعث بهرهوری شما هم در کدنویسی میشود که خود نوعی جبران مافات است.
کدنویسی ساده و روان یا به قولی ساختن زبان برنامهنویسی شبه محاورهای، یک مزیت فوقالعاده برای پیشرفت و گسترش یکزبان برنامهنویسی است. اگر کمی انگلیسی بدانید، در زبانهایی مانند پایتون و روبی خیلی سریعتر نتیجه میگیرید. همین مزیت باعث میشود که Ruby هم جزو بهترین انتخابها برای شروع کار برنامهنویسان مبتدی باشد؛ چراکه پیشرفت سریع و لذت از کدنویسی، شربت ویتامین کدنویسان، در حل مسائل برنامهنویسی است.
عموماً روبی با روبی آن ریلیز اشتباه گرفته میشود. ریلیز یک فریمورک بسیار محبوب است که بهمنظور طراحی وب ساختهشده است. فریمورک قدرتمند مبتنی بر زبان محبوب روبی که به کارها سرعت قابلتوجهی میدهد و باعث میشود انتخاب مناسبی برای استارتآپها هم باشد.
بهجرات میتوان گفت شغل برنامهنویسی با روبی و روبی آن ریلیز به کاری مفرح تبدیل میشود؛ ولی گستره فعالیت روبی همانند دیگر زبانهای این لیست چندان وسیع نیست. این نکتهای است که باید به آن توجه کنید؛ مگر اینکه برای شما گستره فعالیت در دیگر رشتههای کاری در درجه پایینتری از اهمیت باشد.
شاخص محبوبیت زبان برنامهنویسی در TIOBE
جمعبندی تحلیل زبان روبی از بهترین زبانهای برنامهنویسی
روبی در رشته کاری خود که توسعه وب است، یکزبان حرفهای به شمار میرود. کار کردن با آن لذتبخش است و فیش پرداخت حقوق آخر ماه، شما را خوشحالتر هم میکند؛ ولی فرصتهای شغلی آن مانند دیگر زبانهای محبوب لیست بهترین زبانهای برنامهنویسی گسترده نیست.
وضعیت محبوبیت روبی طی پنج سال گذشته
نمونه کدنویسی در زبان روبی از بهترین زبانهای برنامهنویسی
Node = Struct.new("Node", :parent, :coin, :total, :starting_coin)
def make_change(amount, coinage = [25, 10, 5, 1])
root = Node.new(nil, nil, 0, 0)
found_totals = { 0 => root }
queue = [root]
catch(:found) do
until queue.empty?
node = queue.shift
node.starting_coin.upto(coinage.size - 1) do |index|
coin = coinage[index]
new_total = node.total + coin
next if new_total > amount || found_totals[new_total]
new_node = Node.new(node, coin, new_total, index)
found_totals[new_total] = new_node
throw :found if new_total == amount
queue << new_node
end
end
end
return nil if found_totals[amount].nil?
result = []
cursor = found_totals[amount]
until cursor.coin.nil?
result << cursor.coin
cursor = cursor.parent
end
result.reverse!
end
لیست بهترین زبانهای برنامهنویسی راهنمایی بود که برای ساخت آینده حرفهای شما تا جایگاه ویژه خود را در صنعت فناوری اطلاعات به دست بیاورید. زبانهای کمتر شناخته شده ولی بسیار قدرتمندی در راهند که در بازار جهانی برنامهنویسی جایگاه مهمی خواهند داشت. وضعیت آنها را هم مطالعه کنید تا با شناخت کامل، تصمیمگیری موفق داشته باشید. نکته مهم این است که به دنبال آموزشهای زبان دلخواه خود بروید، خود را به چالش بکشید و از همین امروز اولین گام را برای ساختن آینده رؤیایی خود محکم بردارید.
پیشتر در زومیت مطلبی با عنوان بهترین زبان های برنامه نویسی برای یادگیری درسال ۲۰۱۸ منتشر شد که در آن به روند رشد و دگرگونی زبانهای برنامهنویسی و قدرت انطباق آنها با پیشرفت تکنولوژی که جایگاه آنها را تعیین میکند، پرداخته شد. نیازهای سختافزاری و تقاضای بازار برای فناوریهای نوین و فنون مدیریت پروژه و کاهش هزینهها از مهمترین مسائلی است که باعث خلق زبانهای جدید برنامهنویسی میشود.
هر زبان برنامهنویسی از تجربیات زبانهای قبل از خود بهره میبرد ولی با استراتژی و تحلیل شرایط قصد دارد جایگاه جدید و مستحکمی را برای خود دستوپا کند؛ تا جایی که بعضی از این زبانها همچون اسکالا بهنوعی جانشین زبان قدرتمند جاوا شمرده میشوند. از سمتی محبوبیت و رغبت برنامهنویسان به این زبانها، یک عامل مهم در تثبیت جایگاه زبانهای برنامهنویسی آینده دارد. همه این شرایط شکلدهنده فرصتهای بازار برنامهنویسی در آینده است، فرصتهایی که کسبوکار شما بهعنوان برنامهنویس را تغییر خواهد داد.
شناسایی و درک زبانهای جدید برای برنامهنویسان امری ضروری است البته نه در مورد همه زبانها؛ بلکه آنهایی که طبق معیارهای مشخصی از نوظهوران آیندهدار برنامهنویسی به شمار میروند. یکی از این شاخصهای معتبر ابزار گوگل ترندز است. ابزاری مفید که بیشتر معروف به ابزار تحلیل کسبوکار دیجیتال است. استفاده از گوگل ترندز آسان است و برای سنجش برآوردهای آینده کسبوکار ابزاری مناسب بهحساب میآید. ما نیز با این ابزار روند رشد چهار زبان نسبتاً جدید ولی فوقالعاده قدرتمند را که در آینده، جایگاه خوبی برای کسب درآمد دارند به شما معرفی میکنیم.
گوگل ترندز (Google Trends) از مجموعه ابزارهایی است که گوگل در جهت بررسی کیفیت جستجو در دنیای وب در اختیار علاقهمندان قرار داده است. شما با Google Trends و مدیریت پارامترهای عمده جستجو، به نتایج جالب و قابلتوجهی دست پیدا میکنید. برای استفاده از گوگل ترندز بهتر است از قبل به جواب پنج سؤال فکر کنید.
۲. شما چه چیز را میخواهید جستجو کنید؟ محصول یا تصاویر؟
۳. چه محدوده زمانی برای شما مهم است؟ مثلاً در این مطلب ما یک بازه ۵ ساله را ملاک قرار دادیم؛ چون این بازه دقت تحلیل ما را در بررسی زبانهای برنامهنویسی آینده بیشتر میکرد. شاید برای موضوع شما یک بازه یکساله هم کافی باشد.
۴. در چه زبانی جستجو میکنید؟ موضوع شما یک موضوع فنی است یا یک موضوع عام؟ بیان و اصطلاح رایج آن در نزد مخاطب چگونه است؟ و... اینها در نتایج و تحلیل روند موضوع شما، مؤثر است.
گوگل ترندز با گرفتن ورودیهای مشخص و بر اساس زبان یا منطقه جغرافیای به شما گزارشهایی نموداری میدهد که با آن، متوجه شدت یا حدت روند جستجوها میشوید. این موارد در محور عمودی اغلب سطح جستجو را بهصورت عدد نشان میدهد. در بخش محور افقی نمودار بازه زمانی، برای موضوعات موردنظر دیده میشود.
در بررسی زبانهای برنامهنویسی آینده با خصوصیات آن آشنا میشویم و با نگاه به تحلیل Google Trends چگونگی روند محبوبیت زبان برنامه نویسی را بررسی میکنیم. این روند محبوبیت یعنی فرصتهای شغلی بیشتر و بهتر در آینده؛ پس یک نمونه از شیوه کدنویسی هر زبان را در ادامه آن خواهید دید.
در سال ۲۰۱۰ بخش تحقیقات موزیلا از راست (Rust) رونمایی کرد. این نرمافزار بنا بر گزارشهای StackOverFllow جایگاه خوبی از نظر محبوبیت در بین توسعهدهندگان پیداکرده و در دو سال اخیر در لیست بهترین زبانهای برنامهنویسی قرار گرفته است.
Rust یکزبان کامپایلری است که با زبانهای C و ++C مقایسه میشود. این به خاطر فرم کدنویسی مشابه در این زبانها است. در حقیقت زبان Rust از نظر معنایی با دو زبان دیگر تفاوت دارد. در زبان C شما نیاز به مهارت در مدیریت حافظه، کنترل و رفع خطاها دارید ولی در زبان Rust شیوه کار به نحوی است که امکان وجود این خطا به نحو چشمگیری کاهش پیدا کرده است.
همین شیوه کار برای رعایت ایمنی در حافظه، چالشی برای توسعهدهندگان مبتدی خواهد بود؛ اما محبوبیت Rust در لیست بهترین زبانهای برنامهنویسی نشان میدهد که در آینده تقاضای بیشتری برای آن وجود دارد. علاوه بر آنکه موزیلا هم پشتیبان Rust است. کسب رتبه دوم در سال ۲۰۱۷ هم نشان میدهد که وضع کاروکاسبی با این زبان خوب است و اوقاتی خوش برای دوستداران آن در آینده پیشبینی میشود.
وضعیت محبوبیت Rust در طی ۵ سال گذشته
نمونه کدنویسی در زبان Rust از بهترین زبانهای برنامهنویسی
macro_rules! calculate {
(eval $e:expr) => {{
{
let val: usize = $e;
println!("{} = {}", stringify!{$e}, val);
}
}};
(eval $e:expr, $(eval $es:expr),+) => {{
calculate! { eval $e }
calculate! { $(eval $es),+ }
}};
}
fn main() {
calculate! {
eval 1 + 2,
eval 3 + 4,
eval (2 * 3) + 1
}
}
زبان برنامهنویسی تازهواردی که بهسرعت پلههای محبوبیت را در لیست بهترین زبانهای برنامهنویسی طی کرد، الیکسیر نام دارد. ارلنگ Erlang که توسط شرکت اریکسون در دهه ۸۰ میلادی معرفی شد، مایه الهام ساخت و تولد الیکسیر در سال ۲۰۱۱ بود. Erlang از ابزارهای مناسب برای همگامسازیهای سنگین، مثلاً ساخت یک بازی تحت سرور است. الیکسیر در ماشین مجازی ارلنگ اجرا میشود.
خوزه ولیم (José Valim) سازنده الیکسیر معترف بود که باز هم جا برای بهبود ارلنگ وجود دارد. ارلنگ باوجود قابلیتهای ویژه مثل تحملپذیری خطا (fault-tolerant) و چند نخی در ایران تقریباً مهجور است. برای مبتدیان ورود به آن سخت و برای حرفهایها خروج از آن سخت است.
نگران نباشید درباره الیکسیر باید گفت همچنانکه از ارلنگ تأثیر گرفته، خصایص روبی هم در ساخت آن مؤثر بوده است. الیکسیر هم معمولاً در توسعه وب بهکار میرود. محبوبیت الیکسیر هرسال بهتر از سال گذشته بوده است و با رشد استارت آپهای بزرگ در ایران، در آینده بیشتر از ارلنگ و الیکسیر بیشتر خواهیم شنید. سال ۲۰۱۷ الیکسیر توانست جایگاه سوم را در StackOverflow بهدست آورد که نوید بخش همین روند است.
وضعیت محبوبیت Exlixir در طی ۵ سال گذشته
نمونه کدنویسی در زبان Exlixir از بهترین زبانهای برنامهنویسی
defmodule Chain do
def counter(next_pid) do
receive do
n ->
send next_pid, n + 1
end
end
def create_processes(n) do
last = Enum.reduce 1..n, self,
fn (_, send_to) ->
spawn(Chain, :counter, [send_to])
end
send last, 0
receive do
final_answer when is_integer(final_answer) ->
"Result is #{inspect(final_answer)}"
end
end
def run(n) do
IO.puts inspect :timer.tc(Chain, :create_processes , [n])
end
end
زبان مقیاسپذیر اسکالا یکی از پروژههای بازسازی و افزایش بهرهوری زبان جاوا است. اسکالا بر اساس نیاز صنعت فناوری اطلاعات و حرکت به سمت ساخت دستگاههایی با چند هسته پردازشگر، ساختهشده است. همچنین اسکالا قابلیت اجرا رویVirtual Machine جاوا (JVM) را نیز دارد. شما با این ویژگیها چه آیندهای برای این زبان متصور هستید؟
نظر شرکتهایی بزرگ همچون LinkedIn ،Twitter و حتی روزنامه گاردین به اسکالا بسیار مثبت بوده و از آن در کدنویسی خود استفاده میکنند.
اسکالا بهترین انتخاب شما از لیست بهترین زبانهای برنامهنویسی آیندهدار برای نوشتن program است. البته اسکالا از آن زبانهایی است که در نزد مبتدیان، شهره به چغر بد بدن است؛ ولی سیر هر یادگیری، یک منحنی است. امروز تمرینات و تلاش سخت و در آینده فرصتهای شغلی فوقالعاده و درآمدهای عالی و عالیتر. اسکالا در نظرسنجیهای حقوق و درآمد از سراسر جهان در بین ۱۰ کاندید برتر است و با استناد به آمار StackOverflow در ایالاتمتحده در سال ۲۰۱۷ جایگاه اول را دارد.
وضعیت محبوبیت اسکالا در طی ۵ سال گذشته
نمونه کدنویسی در زبان اسکالا از بهترین زبانهای برنامهنویسی
package examples.actors
import scala.actors._
import scala.actors.Actor._
object Message {
def main(args: Array[String]) {
val n = try {
Integer.parseInt(args(0))
}
catch {
case _ =>
println("Usage: examples.actors.Message ")
Predef.exit
}
val nActors = 500
val finalSum = n * nActors
Scheduler.impl = new SingleThreadedScheduler
def beh(next: Actor, sum: Int) {
react {
case value: Int =>
val j = value + 1; val nsum = sum + j
if (next == null && nsum >= finalSum) {
println(nsum)
System.exit(0)
}
else {
if (next != null) next ! j
beh(next, nsum)
}
}
}
def actorChain(i: Int, a: Actor): Actor =
if (i > 0) actorChain(i-1, actor(beh(a, 0))) else a
val firstActor = actorChain(nActors, null)
var i = n; while (i > 0) { firstActor ! 0; i -= 1 }
}
}
آر زبان برنامهنویسی دوستداران آمار و علم دادهها است. اگر علاقهمند به متدهای آماری و تحلیل دادهها و نمایش آن بهصورت گرافیکی هستید، زبان برنامهنویسی آر انتخاب مناسبی برای شماست.
این زبان را در دنیای نرمافزارها میتوان همچون نرمافزار متلب دانست که انواع گرافها و نمودارها را با تحلیل محاسبات ماتریسی به شما نشان میدهد. به همین دلایل زبان برنامهنویسی R در لیست بهترین زبانهای برنامهنویسی جای میگیرد.
از این جهت که آمار و تحلیل دادهها گام اول برنامهریزیهای خرد و کلان است، پس فرصتهای شغلی زیادی در این وادی منتظر شما است.
وضعیت محبوبیت آر در طی ۵ سال گذشته
نمونه کدنویسی در زبان آر از بهترین زبانهای برنامهنویسی
readinteger <- function() {
n <- readline(prompt="Enter an integer: ")
if (!grepl("^[0-9]+$",n)) {
return(readinteger())
}
return(as.integer(n))
}
num <- round(runif(1) * 100, digits = 0)
guess <- -1
cat("Guess a number between 0 and 100.\n")
while(guess != num) {
guess <- readinteger()
if (guess == num) {
cat("Congratulations,", num, "is right.\n")
} else if (guess < num) {
cat("It's bigger!\n")
} else if(guess > num) {
cat("It's smaller!\n")
}
}
شما بهعنوان برنامهنویس در کسبوکاری فعالیت میکنید که بسیار دستخوش تغییر و تحول است.بررسی رقابت زبانهای برنامهنویسی در هر سال فرصت خوبی به شما میدهد تا برای آینده Business خود بهتر برنامهریزی کنید. حکایت شما همچون موجسواری است که باید موجها و فرصتها را بشناسد تا غرق نشود. ابزارهای شناسایی خوب و معتبری در همین دنیای دیجیتال مانند گول ترندز وجود دارد که موجهای خوب را به شما نشان میدهند. با تحلیل این موجها میتوانید از اولین نفراتی باشید که از فواید آن استفاده میکنید. زبانهای جدید برنامهنویسی، موجهای باشکوه و قدرتمندی هستند که میتوانند در آینده شما را در اوج نگهدارند.
کامنت به تکهای از کد گفته میشود که توسط مرورگر اجرا نمیشود. از کامنت برای قراردادن توضیحات، نکات یا هر چیزی که بعدا ممکن است بدان نیاز پیدا کنید استفاده میشود. دقت کنید که کامنتگذاری نکته بسیار مهمی است و باعث شفاف و خواناتر شدن کدها میشود. نکته مهم دیگر کامنتها این است که میتوانید با کمک آنها تکهای از کد که قصد اجرای آن را ندارید نیز کامنت کنید. بدین ترتیب آن تکه کد خوانده و اجرا نمیشود.
برای قرار دادن کامنتی که یک خط باشد، کافی است در ابتدای خط علامت // قرار دهید. هر چه در آن خط و قبل زدن اینتر نوشته شود، کامنت محسوب میشود و اجرا نخواهد شد.
اگر بخواهید چند خط پشت سر هم را کامنت کنید، باید در ابتدای محلی که میخواهید کامنت شود علامت */ و در انتهای آن علامت */ قرار دهید. بدین ترتیب هر چند خطی که بین این دو علامت نوشته شود خوانده و اجرا نخواهد شد.
مثال:
کامنت یک خطی با کمک */
/* this block is commented and won't do anything */
کامنت چند خطی با کمک */
/* این بلاک کد کامنت شده است
و هیچ گونه اتفاقی
در این قسمت رخ نخواهد داد */
کامنت یک خطی با کمک //
//کامنت در یک خط
کامنت چند خطی با کمک //
//مجموعه ای از
//کامنتهای
//یک خطی
در آخر باز هم توصیه میکنیم برای خواناتر شدن کد و درک بهتر آن توسط خودتان و دیگران، حتما در بین کدهایتان کامنت بگذارید و عملکرد و نکات مبهم آن را توضیح دهید.
بلاک کد در واقع مجموعهای از جملات یک زبان برنامهنویسی است که در کنار هم، یک بلاک یا مجموعه را تشکیل میدهند. مثلا فانکشنها و کارهایی که در داخل {} یک فانکشن نوشته میشود یک بلاک کد را تشکیل میدهند.
{
StatementList
}
در مثال بالا هر چه بین دو علامت {
نوشته شده است بهعنوان بلاک کد شناخته میشود.
یک مفهوم بسیار مهم دیگر در جاوا اسکریپت، مفهوم scope است. scope مشخص میکند که به متغیرها و اطلاعات یک بلاک کد، در کجا دسترسی داریم و میتوانیم استفاده کنیم. در ادامه به این موضوع بهصورت عمیقتر خواهیم پرداخت.
بهطور کلی اولین نکته این است که جاوا اسکریپت کدها را از بالا به پایین میخواند. پس نمیتوانید تکه کدی را که هنوز ننوشتهاید در پایین صفحه استفاده کنید. مثلا اگر میخواهید یک فانکشن یا هر متغیر دیگری را در صفحه صدا بزنید، باید ابتدا آن را در بالاتر تعریف کنید و در پایینتر صدا بزنید؛ نه اینکه در بالاتر صدا بزنید و در خط بعدی آن را تعریف کنید.
متغیرها در جاوا اسکریپت به دو دسته تقسیم میشوند: متغیرهای عمومی و Global. در واقع زمانی که یک متغیر را درون یک فانکشن تعریف میکنید، تفاوت بسیار زیادی دارد تا آن را بیرون یک فانکشن تعریف کنید.
زمانی که یک متغیر در خارج بلاک کد تعریف میشود، به آن متغیر عمومی میگوییم. به متغیر عمومی همه جا دسترسی داریم و میتوانیم همه جا آن را صدا بزنیم یا تغییر بدهیم.
متغیرهای محلی در داخل یک بلاک کد تعریف میشوند. در واقع زمانی که شروع و تعریف یک متغیر در داخل مثلا یک فانکشن باشد، این متغیر تنها درون آن فانکشن قابل تعریف و استفاده خواهد بود و بیرون آن نمیتوانید از آن استفاده کنید. این موضوع خصوصا زمانی که تعداد متغیرها زیاد میشود و نمیخواهید برای هر کار کوچکی یک متغیر عمومی تعریف کنید استفاده میشود.
var globalVariable;
function changeMe(){
var localVaribale = "i am local to this function";
globalVariable = "i am global varibable"
اگر localVaribale را در داخل فانکشن صدا بزنیم بدان دسترسی خواهیم داشت چون این متغیر تنها وابسته و قابل استفاده در همین فانکشن خواهد بود//
}
در این مثال زمانی که localVaribale را در داخل فانکشن تعریف کنیم، تنها درون این فانکشن بدان دسترسی داریم. پس اگر خارج فانکشن آن را صدا بزنیم دیگر نمیتوانیم آن را استفاده کنیم و ارور undefined خواهیم گرفت.
ولی متغیر عمومی globalVariable که در خارج فانکشن و بلاک کد فانکشن تعریف شده است، در داخل و بیرون فانکشن بدان دسترسی خواهیم داشت. برای تعریف یک متغیر گلوبال و عمومی، کافی است آن را خارج هر گونه بلاک کد قرار دهید تا همه جا بدان دسترسی داشته باشید.
برای مثال اگر در ادامه و خارج فانکشن بخواهیم این دو متغیر را نمایش دهیم، متغیر گلوبال درست نمایش داده خواهد شد.
alert(globalVariable) //نتیجه درست برخواهد گشت
alert(localVaribale) // این متغیر ناشناخته خواهد بود
همچنین هر بلاک کد (هر چه بین دو آکولاد نوشته میشود یک بلاک کد است) دارای اسکوپ اختصاصی خود است. یعنی اگر متغیری را درون یک فانکشن تعریف کرده باشید بیرون فانکشن نمیتوانید آن را استفاده کنید. برای استفاده و تغییر یک متغیر درون فانکشن و دسترسی به آن بیرون فانکشن باید آن را بیرون فانکشن تعریف کنید. بدین ترتیب متغیر شما گلوبال یا عمومی میشود و وقتی درون فانکشن استفاده شود مشکلی ندارد. حتی مقدار آن بعد از اجرای فانکشن نیز تغییر میکند و مشکلی از بابت تغییر آن در فانکشن نیست.
فرض کنید که ۱۰ فانکشن دارید که در هر کدام از آنها به یک متغیر جداگانه نیاز دارید که مثلا قیمت نهایی را حساب کند! اگر تمام متغیرهای قیمت نهایی را بخواهید گلوبال تعریف کنید، باید به تعداد فانکشنها متغیرهای گلوبال تعریف کنید. همچنین هر بار که فانکشن صدا زده میشود، مقدار متغیر گلوبال شما با مقدار جدید عوض میشود. اما اگر متغیر شما بهصورت محلی در داخل فانکشن تعریف شود، فقط در همان فانکشن در دسترس خواهد بود و دیگر ناچار نیستید متغیرهای جداگانه برای هر فانکشن تعریف شود. همچنین از عدم تداخل متغیرها و قاطی شدن مقدارها در فانکشنهای مختلف نیز خیالتان راحت خواهد بود.