Noutați

CLion 2022.1: A Quality-Focused Release

News Releases CLion 2022.1 is now available! It is focused on quality improvements and enhancements for existing features and workflows like remote development, Docker, CMake Presets integration, and more. It also brings a brand-new CMake Profiling ability that helps you visually inspect why your CMake project may be taking a long time to reload. Code analysis and in-editor type and parameter hints have been tuned to work better and more accurately with modern C++. To update to the new version, you can use the Toolbox App or a snap package (on Ubuntu), download the installer from our website, or apply the patch update to upgrade from version 2021.3. DOWNLOAD CLION 2022.1 Enhanced in-editor experience For this release we’ve polished many CLion features that make your coding experience more comfortable, easy, and productive. We focused on their flexibility and accuracy regarding the modern C++ language. Inlay hints Parameter and type hints help you read and maintain your existing codebases with ease. The extra information is shown right in the editor and helps with parameter names in function calls and deduced types. We’ve implemented a number of fixes to make inlay hints in C++ code more accurate, for example: CLion now displays a user-friendly wstring alias as a type hint for the std::basic_string type. CLion now displays an accurate type hint for dependent types. CLion 2022.1 offers better hints for the emplace, emplace_back/emplace_front, and make_unique/make_shared functions. In CLion 2022.1 we’ve enhanced the settings in Settings/Preferences | Editor | Inlay Hints with some explanations and code examples. You can now better understand the cases where the hints are shown and tune the settings to your preferences. Hints for array indices can now be disabled if you don’t need them. Previously this was not possible. Code analysis Because code analysis is a key part of the IDE, we’ve been working to make it more accurate and easier to configure, and to make its notifications more informative. The Clang-Tidy and MISRA settings in Settings/Preferences | Editor | Inspections | C/C++ | Static Analysis Tools were reworked to make the process of configuring checks easier. A new visual representation includes a tree with all of the checks. Speed search helps you find the checks you need faster – just start typing the name you are looking for when the dialog is in focus. For Clang-Tidy, the dialog also links to LLVM documentation to help you learn about the checks in more detail. It’s much easier to improve your code when the suggestions from the IDE not only name the problem and suggest the fix, but also show how the selected fix will transform the code. That’s why we’ve added a preview for intention actions: For Clang-Tidy, the issue causing incorrect results to occur when the WSL toolchain was used has been fixed by setting Clang-Tidy to execute inside the WSL itself. New C++ Class dialog When creating a new C++ class, you can now specify the namespace where you’d like the new class to be located. You’ll find a new field dedicated to this in the dialog: Structure View helps you navigate through the current file in just a few clicks. Sometimes you want the elements there to go in the same order as in the original file, but sometimes you want them to be grouped […]

Read More

PhpStorm 2022.1 is now available

Newsletter Releases This new major PhpStorm release includes improved Blade and Twig support, added functionality to docblock type annotations and attributes, a bunch of new and useful inspections, several improvements to the editor, and more. You can download PhpStorm 2022.1 here and read through this post to learn about all the new features and improvements inside. Let’s dive in! What’s new? Frameworks and languages PHP Static analysis IDE Improvements for Blade templates Previously, PhpStorm treated every code block in Blade templates as an independent scope. It caused many issues, such as losing code completion: In PhpStorm 2022.1, we’ve significantly reworked how the IDE handles Blade templates. As the result, you’ll get much better code completion in your Blade files: Namespace imports with autocompletion You can now also import namespaces in your blade files, instead of always having to use FQCNs: Many other issues with code completion and formatting in Blade templates were resolved as well, including: WI-37741 AutoCompletion of PHP Variables in Blade WI-64460 Blade: missing completion for methods inside tags if there is php block () WI-64463 Blade: two consecutive @php fragments are merged together and produce “expected: expression” warning WI-31196 Blade: wrong formatting with HTML comments WI-28285 Blade doesn’t indent nested statements when formatting WI-25667 Blade: formatting blocks are not aligning if there is a HTML comment after a closing tag WI-40358 Blade: @section inside @if block throws “Directive is not closed” WI-64594 Blade: support @js directive WI-65562 Blade: support @checked, @disabled, @selected, @prependonce, @pushonce directives You can see the full list of fixed issues in our issue tracker. We plan to continue improving our Blade template engine support. Improvements for Twig templates Just like Blade, we have also been improving our Twig support. Some users prefer their Twig tags not to be closed automatically after typing {%. This behavior is now configurable under Preferences | Editor | General | Smart Keys | Twig. Opening and closing tags will be also edited simultaneously now when you update them from {% to {{ or vice versa. Improvements for WordPress Jump from hook invocation to registrations The WordPress hook system is powerful, but it relies on the string names of events (actions). Because of that, it was not possible to jump straight from where a hook is called to where the handler is declared. In PhpStorm 2022.1, there is a gutter icon on the left of invocation. Click it to see the list of hook usages, including the registration and other invocations. Support for dynamic paths with get_template_directory_uri() In PhpStorm, you can use ⌘+Click (Ctrl+Click) on file paths to open the corresponding files in the editor. Previously, this behavior didn’t work for dynamic paths in WordPress code when the path was compounded using WordPress functions. In this release, we are adding support for get_template_directory_uri() function in paths. Extract Method refactoring has been available in PhpStorm since 2011. It is one of the most used refactorings. We’ve already made quite a few improvements for it in PhpStorm 2021.3. To use this refactoring, you can select a piece of code and press ⌘⌥M (Cmd+Alt+M / Ctrl+Alt+M). Previously, this would open a dialog for refactoring configuration. No one likes pop-ups, though, so in PhpStorm 2022.1, an in-place refactoring will be available instead in many cases where a method is being extracted. There won’t […]

Read More

Save and load Excel .XLSX files from grids in Delphi or C++Builder apps

The Microsoft Excel file as industry standard The Excel .XLSX file format is these days a de facto standard file format to exchange all kinds of tabular data. As the information in an Excel sheet is 2 dimensional, a grid control is the most logical choice for viewing such data or to be the source of such data. For a long time, the TMS VCL TAdvStringGrid component offered built-in support to open and save .XLS files natively without the need to have Microsoft Excel installed. Given how complex the .XLSX file format is, TAdvStringGrid offered only built-in support to save and load .XLSX files via OLE automation, i.e. with the requirement to have Microsoft Excel installed. On the other side, also for a long time, we have the TMS FlexCel product that specializes in native Excel file manipuluation, i.e. reading, writing, modifying Excel files (.XLS and .XLSX) as well as reporting based on Excel template files or exporting Excel files to PDF, HTML, …  TMS FlexCel has grown into an extremely feature rich and sophisticated product to work with Excel files. Hence, the idea to make it extremely easy to take advantage of the FlexCel technology to also allow to natively save and load .XLSX files in our grid components, in particular our VCL grid for Windows application development with Delphi or C++Builder as well as our FNC grid for cross-platform development for Windows, macOS, iOS, Android, Linux. [adinserter block=”2″] Bridge components To make this possible, we introduced two free bridge components, the TMS VCL Grid Excel bridge and the TMS FNC Grid Excel bridge. These are non-visual components TAdvGridExcelExport, TAdvGridExcelImport or TTMSFNCGridExcelExport, TTMSFNCGridExcelImport,  that simply connect to either TAdvStringGrid (and descending components) as well as the TTMSFNCGrid cross-platform grid component. After hooking the grid to this component via a property Grid, import or export is as low-code as a single line of code: To load .XLSX sheet data into a grid:   TMSFNCGridExcelImport1.Import(‘test.xlsx’, ‘my sheet’); In case you wish to work with multiple sheets at once, the bridge components can be connected to a TAdvGridWorkbook and multiple sheets will be imported or exported via the same functions. To save the data from the grid to an .XLSX file:   TMSFNCGridExcelExport1.Export(‘test.xlsx’); and in addition to export to Excel files, there are methods:   TMSFNCGridExcelExport1.ExportPDF(‘test.pdf’); or   TMSFNCGridExcelExport1.ExportHTML(‘test.html’); to export the grid to PDF or HTML files. By default, the TAdvGridExcelExport or TTMSFNCGridExcelExport take in account a lot of cell characteristics for the import or export. This includes: background color font color font name & size cell alignment cell pictures cell merging cell checkboxes cell sizes hyperlinks There is further fine control over what grid and/or Excel features will be imported & exported via properties under: TTMSFNCGridExcelImport.ImportOptions, TAdvGridExcelImport.ImportOptions and TTMSFNCGridExcelImport.ExportOptions, TAdvGridExcelExport.ExportOptions Also, the bridge components also allow you to specify what range of cells to import or export. By default this is the range of used cells in the grid or Excel file, but via TTMSFNCGridExcelImport.LocationOptions, TAdvGridExcelImport.LocationOptions and TTMSFNCGridExcelImport.LocationOptions, TAdvGridExcelExport.LocationOptions you have fine-grained control over what range of cells will be involved in the export/import. Finally, if you want to dynamically control in code additional formatting of cells, there is the TAdvGridExcelExport.OnCellExport() event that is triggered for every cell and allows to override in code the cell format to apply for […]

Read More

Extensions for TMS WEB Core for Delphi

1. Introduction TMS WEB Core is a framework that allows the user to write JavaScript web client applications with the Object Pascal language. Therefore the Object Pascal code is transpiled to JavaScript with the pas2js compiler . TMS WEB Core supports the three IDEs Embarcadero RAD Studio with Delphi, Microsoft Visual Studio Code and Lazarus. This article is primarily concerned with Delphi and shows four options to extend the TMS WEB Core product: Creating design-time packages Writing custom WEB Core components Using & registering base web form classes Registering custom Frames 2. Demo The above mentioned options are practically shown in the demo DemoPackage (download here) which contains a run-time package, a design-time package, a TMS WEB Core application and a VCL application. 3. Packages Delphi projects can contain packages, either for regular programs and for the IDE. A package is a Delphi specific library, similar to a DLL (Dynamic Link Library) on Windows. Packages end with the extension .BPL (Borland Package Library) and are created by the compiler after compilation. When starting an application, the packages are loaded statically. We have to differentiate between two sorts of packages. These are run-time packages and design-time packages. 3.1. Run-time Packages A run-time package is a library that includes parts of the source code and provides parts of the functionality of the application. Instead of having one single executable, it is split into a small executable and multiple packages. 3.2. Design-time Packages Design-time packages are used by the Delphi IDE to make components load dynamically. Therefore components must be registered. Doing this, the IDE tool palette will list the components and this allows the designer to display the components. It is good practice to split the code into run-time code for the run-time package and register code (and any other code that might be only needed and used at design-time) for the design-time package. This design-time package for this demo is DemoPackageIDE.dproj. 3.3. How to set design-time and run-time packages The options of a project can be set in the so called “Project Options”. There is a radio button in the section “Description”, in which the options “Run-time only” and “Design-time only” can be selected. The option “Design-time and Runtime” can be selected, but is as mentioned above not recommended. 3.4. Build control It is also recommended to select “Explicit rebuild” since the option “Rebuild as needed” often leads to problems with packages that are distributed over several project groups. 4. Writing custom TMS WEB Core components The demo contains the unit MyFloatEdit with the component TMyFloatEdit which is a small improvement of a TWebEdit. 4.1. Registering a Component The Delphi IDE calls all public procedures named “Register” from design-time packages. These procedures are called when the design-time package is loaded. Inside a Register procedure components can be registered. The Demo shows how this looks like: interface procedure Register; implementation procedure Register;begin  RegisterComponents(‘My TMS WEB components!!’, [TMyFloatEdit]);end; 4.2. DesignIDE package In order to call RegisterComponents it is necessary to require the DesignIDE package in a Designtime package. The Demo shows this: requires…  DesignIDE,… 4.3. Platforms In order to register a component the Delphi designer needs to be informed which platforms the component shall be used for (e.g. Win32, Win64 and WEB). In the Delphi IDE all TMS WEB Core projects are treated […]

Read More

The Anatomy Of A Great Angular Material Component

Angular Material is a reusable library stocked with UI components modeled after the arrival of Google Material Design. It ensures that each element has been thoroughly tested for performance and reliability standards. Angular Material functions as a framework based on the fundamentals of web design, powering up-to-date browser portability and device independence. The Angular Material Component contains all the default assets of a website to be prepared before it’s ready to deploy on a JS environment. Not only are the building blocks released regularly, but the framework also has many callable API methods to access. By providing the user with well-maintained documentation and custom CSS styling, they will be able to launch a working application in due time. What Makes Angular Material Components Convenient for Development?  It takes more than just mashing together templates to build a collection of Angular Component tools capable of designing software that considers the user experience. A component library should, at its very core, extend the existing functionality of the Angular framework. To be specific, the goal has always been to automate repetitive tasks in hopes of saving time on code maintenance. This Angular library employs the following API-supported templates:  Advanced from fields with autocomplete and date pickers A variety of navbars, touch-swipe, and speed dial navigation Grid layouts including data tables, organized tabs, and collapsable lists Spreadsheets, rich text editors, charts, and progress bars for business purposes Interactive buttons, menus, checkboxes, lists, portals, etc.  Angular Material offers many use cases, such as managing large data sets, creating seamless user interfaces, and consistently executing projects with version control. Rather than rewrite code for individual functions, developers can enjoy the perks of a responsive front-end for implementing custom code into their demos. The key advantages are: Faster development speeds. An easier learning curve. Shortcuts for debugging scripts. Cross-browser support on all components. Another key selling point is using schematics to generate toolbars and menus that make up the dashboard—while entirely optional, customizing your Angular Material theme with “mixins” can transform a bland site into a work of art for your viewers. Under the Guides tab are some resources to set up: For one, you could install a CDK stepper that directs the user from one step to the next. And to change the font, typography settings are easy to configure. The possibilities are nearly endless if you know exactly what components fit together on each web page. Examples of top Angular libraries include MaterialPro Angular 9, NGX-Bootstrap, Prime NG, and Angular Fire 2, which you might’ve heard of. Why does Angular Need to Install a Component Dev Kit (CDK) Package?  The CDK package contains schematics that are available over the Angular CLI. This library assigns a set of replicable behaviors to each building block, allowing Angular developers to reuse code logic whenever they need to add a common interaction pattern.  It is certainly a time-saving collection, especially when tasked with positioning overlays, creating data tables, managing scroll behavior, or presenting content in a hierarchy.  On Angular Material, properties are defined in the Overview tab. Every method has a tutorial on implementing it, and snippets are available for direct copy and pasting.  For instance, if you want to configure site accessibility, you could control the FocusMonitor service, which identifies changes in an element’s focus state. Then it indicates whether the focus […]

Read More

How Technology Is Changing How We Treat D3 Heat Maps

Sencha Ext JS is a JavaScript framework for creating data-intensive, cross-platform online and mobile applications for any modern device. It gives developers access to a number of fantastic libraries. Sencha Ext JS’s D3 package has many useful components. You can use them to generate fantastic data visualizations that will help your company uncover vital business insights. In this article, we’ll look at one of the most useful native Ext JS components, the D3 heat map. We will show you how technology has made it more essential than ever. What is the Importance of D3 in Ext JS? A good application presents its data clearly and appealingly. D3 is a popular way of accomplishing this. Moreover, the D3 package makes integrating D3 into your Ext JS application even more straightforward than before. D3 is a JavaScript package with a lot of features. It allows you to create dynamic and interactive data visualizations using modern web standards in your web browser. SVG, HTML, and CSS are examples of these standards. D3 is also free and open-source, so you can use it without investing a dime. What are Heatmaps? A heatmap (or heat map) is a graphical representation of data with color-coded values. They’re crucial for determining what works and doesn’t work on a website or product page. Heatmaps allow you to evaluate your product’s performance and increase user engagement and retention by experimenting with how particular buttons and items are placed on your website. This enables you to prioritize the tasks that will increase customer value. Heatmaps make it simple to view and understand complex data at a glance. Website and product heatmaps use a range of colors, red to blue, to depict the most popular (hot) and least popular (cold) aspects of your site’s website content. These plots help you identify trends and optimize your product and site to increase user engagement and sales. They do this by aggregating user behavior and providing a snapshot of how your target audience interacts with an individual website or product page by combining quantitative and qualitative data. How is D3 Heat Map Affected by the Shift in the Technological Landscape? The ‘d3-heatmap’ component is used to display matrices with individual values expressed as colors. Ext.d3.axis is used twice in this component. You can easily visualize complex data, such as multidimensional arrays, using the Sencha Ext JS D3-heatmap component. Heatmaps are a visual representation of matrices with individual values represented as colors. Today heatmaps are very popular! Fiddle is a web application that allows you to create, run, and share code examples using the Ext JS framework. Fiddle is compatible with the same systems and browsers as Ext JS 6.2.0. It features an online IDE and a view of your running example without the need to install anything locally. The following code generates one of the most basic heat maps: Ext.create(‘Ext.panel.Panel’, {renderTo: Ext.getBody(),title: ‘Heatmap Chart’,height: 750,width: 750,layout: ‘fit’,items: [{xtype: ‘d3-heatmap’,padding: {top: 20,right: 30,bottom: 20,left: 80}, xAxis: {axis: {ticks: ‘d3.time.days’,tickFormat: “d3.time.format(‘%b %d’)”,orient: ‘bottom’},scale: {type: ‘time’},title: {text: ‘Date’},field: ‘date’,step: 24 * 60 * 60 * 1000}, yAxis: {axis: {orient: ‘left’},scale: {type: ‘linear’},title: {text: ‘Total’},field: ‘bucket’,step: 100}, colorAxis: {scale: {type: ‘linear’,range: [‘white’, ‘orange’]},field: ‘count’,minimum: 0}, tiles: {attr: {‘stroke’: ‘black’,’stroke-width’: 1}}, store: {fields: [{name: ‘date’, type: ‘date’, dateFormat: ‘Y-m-d’},’bucket’,’count’],data: [{ “date”: “2012-07-20”, “bucket”: 800, “count”: 119 },{ “date”: “2012-07-20”, […]

Read More

What Is An Angular Material Component, And Why Does It Matter?

Whether you have been a developer for a long time or are a total novice, it is likely you have come across Angular. Originally created in the TypeScript programming language, Angular immediately earned a reputation as a game-changer for application development. Its numerous features, like the exceptional ability to reuse code and construct programs for any deployment target, are highly sought after in the industry. Angular is well-known for its incredible speed, considered the maximum speed possible on a web platform today. It stands out because it gives developers complete control over scalability and includes features like Web Workers and server-side rendering. With Angular, you frequently use Angular Material Components to build data-sensitive web apps. This is because they are developed and tested to ensure they are viable and interact seamlessly. Although Angular is excellent for developing web apps, it lacks any pre-built components. This presents a challenge for developers who cannot afford the time and effort to generate them from scratch. To overcome this, they must rely on the professional community. To deal with this issue, Sencha’s ExtAngular is an important Angular web development tool. It allows developers to create apps with flawlessly harmonized components that are also professionally tested to ensure quality. Read on to find out more about Angular components and how you can use them to easily build stunning web applications. What is Angular Material Component? To understand Angular Material Components, you need to understand the Angular framework and its restrictions. Angular is one of the most popular JavaScript frameworks for developing Web apps based on components. Its limitations, however, restrict its capabilities. This is most notable in its lack of pre-built components. This shortcoming generates a lot of frustration among developers who don’t want to create components from scratch, That is where Sencha’s ExtAngular comes in. It enables you to create and construct a web application at a breakneck pace, with no additional trouble or lost productivity. Sencha’s ExtAngular includes 140+ pre-built and pre-tested user interface components. It also provides support for a wide range of state-of-the-art tools like Sencha Themer and Sencha Fiddle. Both of these tools enhance the elegance and aesthetics of your app while keeping your design fresh and adaptable. For more flexibility and to eliminate the need to create native Android Java or Apple iOS Objective-C or Swift apps, you can also use Angular on mobile platforms. To do that, however, you need to create your own app. If you don’t want to start from scratch, ExtAngular minimizes your development time while increasing your productivity. That means you can develop and sell more applications, more quickly. Why Does Sencha ExtAngular Matter? Grids, tree grids, pivot grids, charts, D3 visualizations, trees, calendars, buttons, and menus, are among the 115+ components included in ExtAngular for Angular developers. All of the components have been thoroughly tested and are intended to operate together. In this way, ExtAngular raises productivity. It helps developers get apps to market faster while lowering integration and maintenance costs. Let’s look at some features of ExtAngular. How does the Grids and Data-Driven Documents Package Enable Development of Visually Compelling Web Applications? ExtAngular is well-known for its PivotGrid capability. It allows developers to easily show and project data so that users may examine and assess it before making a choice. The sum, […]

Read More

What is Delphi’s DNA

I was chatting with someone who was less familiar with Delphi. He asked what is it about Delphi that makes so many people continue to love it. I thought I would share my answer and see what everyone else thinks. Developer productivity – When Delphi was first introduced it was going head to head with Visual Basic in getting things done fast, and most of the time Delphi was faster for getting things done, and the rest of the time it was still really fast. That continues today. I’ve done presentations for people and they blown away with how fast I can do things with Delphi. Fast native apps – When it comes to app performance Delphi was way faster than VB and is competitive with Visual C++ and any other compiler out there. This is because it builds native apps that run fast. Database access – One of the original goal of Delphi was first class database connectivity. That is something Delphi continues to deliver. BDE was ahead of its time, but FireDAC is a whole new breed. And the great thing is there are so many 3rd party data access libraries to choose from, to give you just the right set of features you need. Platform API access – I remember the first time I needed to access some Windows messages and a Windows API that wasn’t exposed through the RTL. I kind of expected it to be a lot of work. I was pleasantly surprised with how easy and natural it was to add that to my program. I love that Delphi lets you work at the nice high productive level, and then reach down to “touch the metal” and access the APIs. Visual form designers – I’ll admit it, Delphi has spoiled me. I’ve checked out a number of other programming tools, and it is rare to find one that works as good. The ability to design your user interface and preview what it will look like so easily is so useful. Reliable applications – I’ve heard stories about when they demonstrated Delphi’s ability to handle exceptions and people were falling out of their chairs. I don’t know what it is about Delphi, it might just be that the developers who use it are amazing, but I am frequently impressed with how reliable programs are that are developed with Delphi. Good strong community – All the Tech Partners, MVPs, authors, trainers, and developers make the Delphi community amazing. It is always great to see all the amazing projects everyone is working on. So many people willing to help and just be fantastic. It is a great community to be part of. I made this graphic a while ago to explain why developing with Delphi was so awesome. I call it the three levels of development. The idea is each level builds on the one beneath it. The higher levels provide great productivity benefits. The great thing about Delphi is it lets you easily move between these levels. You can do so much in code, even at design time, but it doesn’t keep you at that high level. When you need it you can move down to a lower level, even to the point of writing inline assembly code on Win32. Most other development tools are stuck at just one level, or with just bits and pieces of the other levels. Delphi gives you all […]

Read More

Press Release: Embarcadero Launches LearnDelphi.org, a Delphi-Centric Learning Ecosystem, to Promote Delphi Education

LearnDelphi.org provides a platform for Delphi developers and educators, along with free licensing options and ways to get involved January 16, 2020 11:00 AM Eastern Standard Time AUSTIN, Texas–(BUSINESS WIRE)–Embarcadero (a division of Idera, Inc.), a provider of cross-platform app development productivity tools, today announced the launch of LearnDelphi.org, a learning ecosystem for Delphi developers, a teaching platform for Delphi educators, and a key destination for all things related to the Delphi Community. “Now Delphi, the best language and IDE for learning to program, has a completely free environment for education” Tweet this LearnDelphi.org is a collection of resources and free content for teaching and learning software development curated by and for Delphi developers. The site includes Delphi licensing options and resources such as ebooks, slideshows, and video tutorials, as well as ways to get involved. The content is compiled and supported by Embarcadero’s MVPs, community members,subject matter experts, and employees, and will be available in multiple languages over time. Potential contributors, educational liaisons, and educators are always welcome and encouraged to get involved. “Now Delphi, the best language and IDE for learning to program, has a completely free environment for education,” said Landerson Gomes dos Santos, logistics, and transport specialist and Embarcadero MVP. “Delphi’s Community Edition includes all the features and facilities for those who want to take the first steps in developing applications for computers and mobile devices. LearnDelphi.org is an exciting initiative for the Delphi community, bringing together resources that students and teachers need to make learning in Delphi more efficient and fun.” Delphi Community Edition offers free professional-grade, non-commercial licenses that are ideal for students’ home projects or early-stage start-ups (see FAQs). Academic Edition is another free option that offers a group-oriented classroom licensing package that is ideal for high schools and universities that meet certain qualifications. “Delphi’s Object Pascal is the best programming language for anyone wanting to learn to program, and the Delphi Community Edition from Embarcadero is a great place to start building apps for Windows, macOS, Android and iOS. It lets you quickly and easily build apps for Windows, macOS, Android, and iOS,” said Jim McKeeth, chief developer advocate at Embarcadero. “LearnDelphi.org is an intuitive compilation of resources that students and teachers need for learning to program with Delphi.” Delphi expanded significantly in the context of RAD Studio, which pioneered rapid visual object-oriented programming. Over the years, Pascal and Delphi became a staple for computer education and continue to be standard in many countries where many students learn to program with it. Today’s Delphi has rich support for Objects, Anonymous methods, Generics, Multi-Threading, and a robust type system. With free libraries, it is easy to expand Delphi with Duck Typing, Domain-Specific, Functional Logic, Neural Networking, and more. No other programming language provides such diverse programming paradigms with a simple language, native compilation, and rich IDE and tooling. “Since the availability of the Starter Edition, and later with Community Edition, Delphi has been freely offered as a supported language on learning sites, such as Exercism.io,” said Ryan Potts, software developer at Gateway Ticketing Systems and Embarcadero MVP. “It is great to see Delphi regaining the momentum and popularity it truly deserves.” Visit LearnDelphi.org to find learning resources or to get involved. About Embarcadero Embarcadero builds tools that solve productivity problems for application developers. The company’s products allow users to design, build and run […]

Read More

Learn Delphi on Exercism.io

One of Embarcadero’s MVPs, Ryan Potts, is the originator and maintainer of the Delphi track on Exercism – a site dedicated to making it easy for people to learn different programming languages. He was interviewed by the Exercism team previously, but I thought it would be interesting to interview him about what Exercism is, and how all of you can be involved. What is Exercism? How long has it been around, and how many students visit it? A not-for-profit organization providing opportunity through programming education The Delphi track had 3 new solutions submitted, 1 for mentoring. See their about page for more It was originally founded in 2013 by Katrina Owen. Each week I receive a mentoring update.  The most recent update indicates that during the last week of 2019 2,152 people submitted 8,107 solutions across all the language tracks.  Of those 2,339 were submitted for mentoring. 174 mentors gave feedback on 1,963 solutions. What sort of programming languages are found on Exercism? There are 51, including our favorite, Delphi! What kind of exercises might someone find on Exercism? Do any of the exercises involve building Graphical User Interfaces or accessing databases? What about accessing REST APIs? These are things that Delphi makes so much easier. Or are they all console applications? At the moment all the exercises are console only.  I have considered creating some Delphi specific exercises to utilize Delphi’s ability to pretty easily build GUIs, just haven’t had the time myself.  This would be a great way other experienced Delphi developers to help.  Does a student need any experience to start? No, but knowledge of the command line is essential. Does it cost anything? What sort of tools does a student need to get started?  Each language track has set up instructions to let you know what you need and where to find it. For example with Delphi you need to install Delphi. There is also a command-line tool that all the tracks use. If a student is completely new to Delphi what do they need to do to get started. Once someone has signed up for the Delphi track they will find instructions on how to set up their system.  (They are a bit dated, a few versions of Delphi have been released since I wrote these.) Other links are also available from the same location for more Delphi related resources. Is it true the Exercism Windows CLI installer is written in Delphi? Exercism’s Windows CLI Installer is open source and written entirely in Delphi. It automatically determines the correct version (32/64 bit) of the Exercism CLI the student needs then downloads the CLI, extracts it, and puts it in the right place. The installer has been downloaded 15,000 times, which I’m pretty proud of!  Is Exercism only for new developers or are there things experienced developers might learn there as well? It is not only for new developers, but is probably geared towards someone with only a little experience, knowledge of how to operate a terminal (command prompt) interface is essential.  How is Exercism similar to a code kata?  It essentially IS a repository of code katas; with added benefit of having someone knowledgeable in the language you are working in review and critique your work. The term code kata is a concept first used by Dave Thomas, co-author of the book […]

Read More