هوش مصنوعی و آینده برنامه نویسی



مجله New York Times در سال ۱۹۹۷: “شاید حدود ۱۰۰ سال طول بکشد تا کامپیوتر، انسان را در بازی Go شکست دهد”

همان مجله در سال ۲۰۱۶: “استاد بازی Go شکست سختی از برنامه ی کامپیوتری شرکت گوگل خورد”

شکست قهرمان بازی Go توسط برنامه هوش مصنوعی AlphaGo متعلق به شرکت Google DeepMind
شکست قهرمان بازی Go توسط برنامه هوش مصنوعی AlphaGo متعلق به شرکت Google DeepMind

در دهه گذشته، توسعه و طراحی نرم افزار با تغییرات شدیدی همراه بوده. این کار که زمانی تنها مخصوص مهندسان کامپیوتر بود، اکنون به سرعت در چند هفته آموزش داده می شود و درحال نزدیک شدن به الگوی جدیدی از توسعه نرم افزار هستیم. این پارادایم جدید، نوشتن کد توسط هوش مصنوعی است. وقتی به این سطح برسیم، طراحی وب عملا مرده و منسوخ می شود.

برنامه نویسی و وب، از گذشته تا کنون:

وردپرس در سال ۲۰۰۳ لانچ شد و از آن زمان رشد خیلی خوبی از طریق پلاگین ها و تم ها داشته است. این پلتفورم اجازه می دهد هر فردی که تخصص فنی ندارد، بتواند وبسایت مورد نیاز خودش را بدون نیاز به نوشتن حتی یک خط کد ایجاد کند. هرچند وردپرس محدودیت های خودش را دارد، اما آنقدر پاسخگوی نیازها بوده که ۲۶٫۵% از فضای وب را به خود اختصاص داده. درمورد ۷۴٫۵% باقی مانده چه می توان گفت؟

در مرحله بعد پلتفورم‌های زیادی برای برنامه نویسی به وجود آمد. لازم نیست همه چیز را خودتان از صفر بنویسید. چیزهایی که شما لازم دارید، نیاز افراد دیگری هم بوده و افراد با به اشتراک گذاشتن کدهایشان و استفاده از کدهای دیگران، به سرعت محصول خود را می توانند طراحی کنند. Node که زمانی یک زبان برنامه نویسی جانبی به حساب می آمد، به سرعت فضای وب را طی کرده. اگر با این زبان آشنایی ندارید، به طور خلاصه روشی است که جاوا اسکریپت روی سرور اجرا شود. بخش خارق العاده آن این است که همان افرادی که برای سمت کلاینت برنامه نویسی می کردند، حالا می توانند با همان زبان در سمت backend کار کنند. برای زبان Ruby، پلتفورم Ruby on Rails ، برایpython  پلتفورم Django و برای php پلتفورم Laravel و موراد زیاد دیگری وجود دارد. اپن سورس بودن این پلتفورم ها و همچنین فروم‌ها و اجتماعات شکل گرفته حول آن‌ها، به سرعت رشد آنها کمک بسیاری می‌کند.

all_frameworks

در ادامه، طراحی API برای هر کاری و وجود SAAS، BAAS و دیگر فریم‌ورک‌ها کار را خیلی آسان‌تر کرده اند. آیا نیاز دارید که از تشخیص چهره در اپلیکیشن جدید خود استفاده کنید؟ اگر بخواهید که احساس افراد را در تصویر تشخیص دهید چه کار می کنید؟ یک API برای آن وجود دارد. تقریبا هرچیزی که فکرش را کنید، یک API برای آن وجود دارد. به زبان دیگر یعنی که اکنون هر نرم افزاری می تواند با ابزار اپن‌سورس یا API خاصی ساخته شود. اگر دو هفته به یک طراح وب فرصت بدهید و به او بگویید که مشابه یک محصول را بسازد، می تواند یک نسخه اولیه از آن را با این ابزارها بسازد. هرچیزی که باشد. البته، این به معنی ایجاد یک شرکت نیست، بلکه به معنی افزایش بازدهی طراح است. دیگر نیازی نیست که backend خودتان را بنویسید و به این دلیل نیست که توسعه دهندگان خیلی بهتر از گذشته شده‌اند، به این دلیل است که روی ساختارهای موجود سوار می شوند.

اکنون در کجا قرار داریم؟

اگر یک وبسایت نیاز دارید، نیاز نیست برنامه نویسی کنید. اگر یک وب اپلیکیشن لازم دارید که کار خاصی انجا می دهد، چند پکیج از node را استفاده کنید. به یک اپلیکیشن موبایل احتیاج دارید؟ می توانید تنها کد جاوا اسکریپت بنویسید و یک اپلیکیشن native برای اندرید و آیفون از همان کد دریافت کنید. اگر به یادگیری ماشین در اپلیکیشن خود نیاز دارید، یک API برای آن وجود دارد. نمی توانید یک توسعه دهنده برای شرکت خود پیدا کنید؟ با یکی از بوتکمپ ها تماس بگیرید تا یکی از ۱۰۰ تازه فارغ التحصیلانشان را به شما معرفی کنند. شرکت های بسیاری با استفاده از پکیج های اپن سورس، فریم‌ورک‌های هیبرید و ابزارهای توسعه سریع درحال شکل گیری هستند. آنها دانشجویانی را که در ۱۲ هفته یادگرفته اند کدنویسی کنند استخدام می کنند. چندان سخت نیست که تصور کنیم روزی هر فردی می تواند ایده‌ی کسب و کار خود را با روش drag and drop و به شکل مقیاس پذیر و پایدار ایجاد کند.

شرکت هایی درحال حاضر نیز وجود دارند که اجازه می دهند فردی غیر متخصص یک وب اپلیکیشن را از صفر و بدون یک خط کد زدن ایجا کند. شرکت های دیگری هم وجود دارند که با استفاده از یادگیری ماشین، برای شما محصولات مختلف میسازند و طراحی می کنند. با این حال هنوز همه تنظیمات قابل اعمال نیست، اما در آینده بهبود پیدا خواهد کرد.

زمانی که هرکس می تواند هرچیزی بسازد

واضح است که هرکسی قادر به ساخت هر چیزی نیست. به ازای هر ۱۰۰۰ توسعه دهنده که از یک پکیج اپن سور‌س استفاده می کنند، یک نفر وجود دارد که آن پکیج را ساخته است. ما نیاز داریم که آموزش دهیم چطور این آجرهای خانه سازی را باید ساخت. نیاز به مهندسان بیشتری داریم، نه افراد بیشتری که صرفا آجرها را به هم متصل می کنند. این کار با چند هفته آموزش امکان پذیر نیست و به سختی در ۴ سال اتفاق می افتد.  نیاز داریم که تعداد بیشتری از طراحان وب، مهارت های خود را ارتقا دهند و درمورد هوش مصنوعی، واقعیت افزوده و مجازی یاد بگیرند. این مهارت‌های مورد نیاز آینده هستند. فضای وب اشباع شده. موبایل نیز اشباع شده. برای هر ایده‌ی اپلیکیشنی که دارید، سه اپلیکیشن موجود هست و اپلیکیشن چهارمی نیز وجود داشته که در یک استارتاپ شکست خورده. نیاز داریم که مشکلات سخت تری را حل کنیم و اینکار مهارت هایی فرای مهارت‌های توسعه دهنده‌ی وب نیاز دارد.

هوش مصنوعی

اگر احساس می کنید که هوش مصنوعی علمی مربوط به آینده است و هنوز کاربردی نشده در اشتباه هستید. البته هنوز با تعریف هوش مصنوعی که در فیلم های علمی-تخیلی ارائه میشود فاصله داریم. برای نمونه، دستیاران (کمی)باهوش که روی گوشی موبایل خود در اختیار دارید با کمک هوش مصنوعی ساخته شده‌اند. Siri برای اپل، Cortana برای مایکروسافت، Alexa برای آمازون و Google Assistant برای شرکت گوگل هستند و موارد بسیار دیگری نیز وجود دارند که هرکدام نقش دستیار شخصی شما را بازی می کنند.

میلیون‌ها سال پیش موجوداتی که در اقیانوس‌ها زندگی می کردند، منتظر می‌ماندند تا جریان آب، غذایی به آن‌ها برساند و یا خودشان غذای موجود دیگری شوند. طی گذر زمان موجودات تکامل پیدا کردند. عضوی به نام چشم به آنها قدرت بینایی داد و زندگی آنها کاملا تغییر پیدا کرد. در گذشته نیز کامپیوترها تنها قادر بودند تصاویر را تنها به عنوان رشته‌ای از صفر و یک ها ببینند. بعد از آن با کمک مهندسان کامپیوترها قادر به تشخیص برخی الگوها مثل صورت انسان شدند(برای نمونه تشخیص صورت یا لبخند در دوربین های دجیتال). اکنون هوش مصنوعی به کامپیوتر قدرت بینایی و درک تصاویر داده است. می توانید یک تصویر را به کامپیوتر بدهید و کامپیوتر به شما می گوید که چه اتفاقی در تصویر در حال رخ دادن است. روزانه دومیلیارد تصویر در فیسبوک و زیرمجموعه‌های آن آپلود می شود و تمام این عکس‌ها با استفاده از شبکه عصبی، تگ می شوند.

automatic_captioning1

automatic_captioning2

خودروهای ساخته شده توسط شرکت های گوگل و تسلا می توانند اشیا، جاده، ماشین ها و انسان‌ها را تشخیص دهند و بدون کمک راننده، به مسیر خود ادامه دهند (self-driving cars). البته این ماشینها هنوز به بلوغ کامل دست نیافته اند و هنوز واگذاری کنترل کامل به این خودروها حادثه ساز بوده و نیاز به آزمایش و بررسی های بیشتری وجود دارد.

scene_labeling

scene_labeling2

هوش مصنوعی می‌تواند کد مورد نیاز خود را تولید کند

شرکت اپل، Siri را از سازندگان آن در سال ۲۰۱۰ به قیمت ۲۰۰ میلیون دلار خریداری و در گوشی‌هایش استفاده کرد. Dag Kittlaus, Adam Cheyer and Chris Brigham که از سازندگان Siri بودند، چند سال بعد اپل را ترک می کنند و در سال ۲۰۱۲، Viv را ایجاد می کنند. Viv به گفته سازندگان آن قرار است تبدیل به “رابطی هوشمند برای هرچیزی” شود.

نکته مهم در تکنولوژی Viv، این است که نیاز به برنامه نویسی هر دستور و توضیح دادن قسمت به قسمت تقاضای خود را ندارید. این تکنولوژی می تواند کد مورد نیاز خود را برای انجام کارهای جدید ایجاد کند. در واقع Viv یک برنامه کامپیوتری است که قادر است خود را بسازد. سازندگان آن، این تکنولوژی را “Dynamic Program Generation” یا “تولید دینامیک برنامه” نامیده اند.(جهت مطالعه بیشتر می توانید به پتنت این شرکت مراجعه کنید)

سیستم استفاده شده در این محصول، یک دستور از کاربر به عنوان ورودی دریافت می کند و یک برنامه برای به نتیجه رسیدن درخواست کاربر ایجاد می کند. این برنامه فعالیت ها و مفاهیم جدیدی را بر اساس ورودی دریافت شده تعریف می کند تا جایی که به هدف تعیین شده دست پیدا کند. برای نمایش قابلیت های آن، از Viv پرسیده میشود:”آیا پس‌فردا در نزدیکی Golden gate bridge بعد از ساعت ۵ بعد از ظهر، هوا گرم تر از ۷۰ درجه خواهد شد؟ ” و Viv قادر به جواب دادن به این سوال بود.

 Dag Kittlaus، سازنده‌ی Siri ، در حال معرفی و توضیح تکنولوژی Viv

Dag Kittlaus، سازنده‌ی Siri ، در حال معرفی و توضیح تکنولوژی Viv

* این شرکت (viv) در سال ۲۰۱۶ توسط سامسونگ خریداری شده

چه کنیم؟

تنها مسیر ممکن، یادگیری است. سازمان‌های آموزشی قدیمی در حال عقب افتادن هستند. وظیفه‌ی هر  فرد است که مسئولیت آموزش خود را بر عهده بگیرد. اگر صاحب یک کسب و کار هستید، شاید زمان آن فرارسیده که کارمندان فنی خود را برای آینده آموزش دهید. گوگل این کار را می کند. اگر شما یک توسعه دهنده وب هستید که تنها مزیت رقابتی شما جاوا اسکریپت، روبی آن ریلز و یا پی اچ پی است، نیاز دارید که ابزار خود را به روز کنید. هوش مصنوعی، یادگیری ماشین، computer vision و مهارت های دیگر به شما توانایی ساخت چیزهایی میدهد که هنوز ساخته نشده اند.

einstein_learning_quote

برخی منابع:

TechCrunch , VentureBeat,TensorFlow