بد نیست شرکت‌های نرم‌افزاری، در صورتی که نرم‌افزارشان بد بود، پول مشتری را پس بدهند. هرچند که این کار احتمالا صنعت نرم‌افزار را ورشکسته خواهد کرد.  -   اندرو تننباوم (Andrew S. Tanenbaum)
یونیکس بسیار ساده است؛ فقط یک نابغه لازم است که سادگی‌اش را درک کند!  -  دنیس ریچی (Dennis Ritchie)
علوم کامپیوتر دیگر تنها به کامپیوترها مربوط نمی‌شود، همان طور که نجوم محدود به تلسکوپ‌ها نیست.   -   ادسگر دایکسترا (Edsger W. Dijkstra)
با رمز عبور کامپیوترتان مثل مسواک برخورد کنید. هیچ‌وقت آن را به کسی ندهید و هر شش ماه یک بار عوضش کنید.  -  کلیفورد استرول (Clifford Stoll)
طبیعت انسان این است که عاقلا فکر و غیرعاقلانه عمل کند.  -  آناتول فرانس (Anatole France)
یونیکس کاملا کاربرپسند است. البته، کاربرانی که می‌پسندد خودش انتخاب می‌کند!  -  آندریاس بوک (Andreas Bogk)
«به نظرم یکی با لگد زده به سطل آشغال ویندوزم. همه آیکون‌ها پاشیده روی روی دسک‌تاپ!   -   بیلیام (Billiam)
در بیشتر موارد، اشکال از شیوه تفکر افراد است، نه فناوری.  -   کریسفوتر جی. بوشولتز (Christopher J. Bucholtz)
علم هیچ‌گاه گمانه‌زن نیست؛ بلکه نظریه را به کار می‌گیرد تا نقطه‌ای برای جستجو نشان دهد، اما هیچ‌گاه نظریه‌ای را به مثابه یک گزاره اثبات‌شده نمی‌پذیرد.     کلیولند ابی (Cleveland Abbe)
«این راهنمای کاربری به شما می‌آموزد که نرم‌افزار ما واقعا چه کارهایی می‌تواند بکند، صرف نظر از این که مسئول فروش‌مان به شما چه گفته باشد!»  -  بخشی از راهنمای یک کارت گرافیک - سال 1985

 بستره‌های داده‌محور ریشه در برنامه‌های کاربردی آشنا دارند

 داریل ک.تفت

خاچیک سولاسیان

مایکروسافت در تلاشی برای قابل حصول ساختن توسعه نرم‌افزارها برای عده بیش‌تری از مردم، در سال ۲۰۰۳ ساختن «بستره چند منظوره طراحی مدل برای نرم‌افزار» خود، اسلو را آغاز کرد؛ بستره‌ای که به کاربران این امکان را می‌دهد که نرم‌افزارهای‌شان را مستقیما از روی مدل‌ها و دیاگرام‌های‌ خود بسازند.

osloهدف اولیه ایجاد یک ابزار بصری برای ساخت مدل‌ها و یک مخزن برای ذخیره مدل‌ها و اطلاعات مربوط به آن‌ها بود. اما معلوم شد که این کار به یک زبان برنامه‌نویسی تشریحی جدید نیاز دارد. مایکروسافت در کنفرانس توسعه‌دهندگان حرفه‌ای مایکروسافت، نمایشی اولیه از این زبان را (که با نام مستعار دی (D) شناخته می‌شود)، در کنار ابزار طراحی مدل و مخزن آن ارایه خواهد داد.

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

 برد لاورینگ (Brad Lovering)، یکی از طراحان کلیدی مایکروسافت و مدیر پروژه اسلو می‌گوید: «در اسلو نقش تحلیل‌گر تجاری بسیار کمرنگ شده و این شانس بزرگی برای موفقیت این محصول است.» دان باکس (Don Box)، یکی از طراحان CSD که بر روی زبان برنامه‌نویسی اسلو کار می‌کند اضافه می‌کند: «ما سعی می‌کنیم راهی ساده برای بیرون کشیدن ایده‌ها از مغز و فرو کردن آن‌ها در کامپیوتر ارایه کنیم.».

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

 لاورینگ می‌گوید: «بگذارید این‌طور بگویم، اگر شما کاربر اکسس (Access) مایکروسافت هستید، کار کردن با اسلو برای شما ساده‌تر خواهد بود.»

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

گشت و گذاری در اسلو

عبارت Oslo به گروهی از محصولات و فناوری‌های آینده مایکروسافت اشاره دارد.

فناوری‌های اسلو که قرار است در Community Technology Preview در کنفرانس توسعه‌دهندگان حرفه‌ای مایکروسافت عرضه شوند عبارت است از:

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

دیوید چپل (David Chappell)، مدیر شرکت چپل و شرکا به برخی فناوری‌های اوسلو دسترسی داشته است. او می‌گوید: «اسلو ابزاری برای کار کردن با داده و ایجاد داده است.»

به ادعای لاورینگ این ابزار کاربران را قادر می‌کند تا دانش موجود در دامنه کار را در نماهایی (view) دامنه‌محور وارد کند. هم‌چنین این ابزار برای انواع پیش‌رفته‌تر نمودار کشیدن هم قابل استفاده است. برای مثال کاربران (BPMN (Business Process Modeling Notification و UML (Unified Modeling Language نحوه کار را آشنا خواهند یافت.

در همین حین مایکروسافت برای آسان کردن عملیات توسعه نرم‌افزار در حوزه اسلو زبان برنامه‌نویسی جدید دی را توسعه داده است.

چرا یک زبان جدید؟ استیون لوکو (Steven Lucco)، مهندس نام‌آشنای واحد توسعه مایکروسافت (MDD) که در توسعه سند رویکرد CSD و اوسلو دست داشته است در این باره می‌گوید: «برای تحقق هدف اسلو نیاز به انقلابی در خلاقیت توسعه‌دهندگان داشتیم. دنیای برنامه‌نویسان امروز به طرز دیوانه‌کننده‌ای شی‌گرا است. کوچک‌ترین تکه‌های داده هم در کلاس‌های مختلف کپسوله شده‌اند. این کار یعنی ایجاد یک ماشین تورینگ (Turing Machine). به عبارت دیگر ساخت چیزی که اصلا نمی‌شود سر در آورد که در آن چه می‌گذرد. در حالی که در دنیای سیکوئل وضع کاملا برعکس است. هزاران کار مختلف می‌توان با داده انجام داد. برنامه‌های مختلف می‌توانند در آن واحد با یک تکه خاص داده کار کنند و به آن بیافزایند. ما در این مانده بودیم که چه کنیم تا برنامه‌نویسی جریان اصلی بیش‌تر به برنامه‌نویسی سیکوئل شبیه شود. البته بدون این که سخت‌تر شود. چون برنامه‌نویسی سیکوئل معمولا سخت‌تر قلمداد می‌شود.»

البته باید به این نکته هم توجه کرد که کاربر اسلو احتیاجی به یاد گرفتن زبان دی ندارد. لاورینگ می‌گوید: «این زبان به منزله جزییات فنی است که برای همه کاربرد ندارد و گروه هدف خاصی دارد.»

باکس که دستی هم در کار توسعه زبان دی دارد می‌افزاید: «برای کار با اسلو نیازی به یاد گرفتن دی نیست. آن‌هایی که برنامه‌سازی متنی دوست دارند از آن خوششان خواهد آمد.»

البته زبان اسلو چیز اضافه بر سازمان و بیهوده نیست. لاورینگ می‌گوید: «آن گروه از افراد ما که روی پایگاه داده کار می‌کردند خوب با آن کنار آمدند و کارهای خوبی صورت دادند و افراد گروه دینامیک ما که در واقع پایگاه داده خود برنامه را ساختند می‌گویند ای کاش مدت‌ها پیش، از این چیزها داشتیم.» وی هم‌چنین گفت یادگیری این زبان نیاز به تلاش فنی دارد.

به گفته وی استفاده از این زبان از ویژوال بیسیک مشکل‌تر و از اکسل بسیار مشکل‌تر است. ولی لزوما از نوشتن یک برنامه کارای C# مشکل‌‌تر نیست. زبان اسلو زبانی داستان‌وار با سیستمی داستان‌گونه است. هم‌چنین این زبان کارایی خوبی برای ایجاد داده ساخت‌یافته دارد و در کار کردن به شیوه سیکوئل خیلی خوب عمل کرده است، چون می‌تواند سیکوئل تولید کند.

مایکروسافت از این زبان برای توسعه محتوای مخزن اسلو استفاده می‌کند. به گفته لاورینگ مایکروسافت قصد داشت تا جای ممکن نزدیک به سیکوئل بماند و حتی در نظر داشت T-SQL (سیکوئل اجرایی) ایجاد کند، ولی بعدا به این نتیجه رسید که T-SQL حالت نزدیکی به SQL مد نظر را ایجاد نمی‌کند.

مایکروسافت برای توسعه اسلو چندی از محققان خود و هم‌چنین محققان زبان‌های برنامه‌نویسی پایگاه داده را به کار گرفت. زبان برنامه‌نویسی کاربردی ML هم مانند LIST بر توسعه اسلو موثر بود.

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

هم‌چنین زبان اسلو ایده‌هایی از TLA+ هم گرفته است. این زبان توسط لسلی لمپورت (Leslie Lamport) از محققان مایکروسافت توسعه یافته است.

 

شماره 01